https://sourceware.org/bugzilla/show_bug.cgi?id=32665

            Bug ID: 32665
           Summary: ld buffer-overflow in elf_x86_64_convert_load_reloc
                    (bfd/elf64-x86-64.c:1821)
           Product: binutils
           Version: 2.45 (HEAD)
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: ld
          Assignee: unassigned at sourceware dot org
          Reporter: swj22 at mails dot tsinghua.edu.cn
  Target Milestone: ---

**Description**
A segv can occur in ld  when using the  --version-exports-section  option with
a specially crafted input file. This issue leads to buffer-overflow.

**Affected Version**
GNU ld (GNU Binutils) 2.45 (HEAD) Commit
66e701c09229d389f4046fddae586278fe3e014f

**Steps to Reproduce**

Build binutils 2.45 (HEAD) Commit 66e701c09229d389f4046fddae586278fe3e014f 
with AddressSanitizer (e.g., CFLAGS="-g -fsanitize=address" ./configure && make
-j).
Run the following command:

/tmp/binutils-gdb/bins/bin/ld   --version-exports-section 123 /tmp/poc
AddressSanitizer:DEADLYSIGNAL
=================================================================
==1298944==ERROR: AddressSanitizer: SEGV on unknown address 0x2a947fff6107 (pc
0x56407bc31b8a bp 0x7ffed6ae5620 sp 0x7ffed6ae4b80 T0)
==1298944==The signal is caused by a READ memory access.
    #0 0x56407bc31b8a in elf_x86_64_convert_load_reloc
/tmp/binutils-gdb/bfd/elf64-x86-64.c:1821:16
    #1 0x56407bc2ca49 in elf_x86_64_scan_relocs
/tmp/binutils-gdb/bfd/elf64-x86-64.c:2545:9
    #2 0x56407bd16c45 in _bfd_elf_link_iterate_on_relocs
/tmp/binutils-gdb/bfd/elflink.c:4285:9
    #3 0x56407bc0b981 in elf_x86_64_early_size_sections
/tmp/binutils-gdb/bfd/elf64-x86-64.c:2994:6
    #4 0x56407bd292bc in bfd_elf_size_dynamic_sections
/tmp/binutils-gdb/bfd/elflink.c:6893:11
    #5 0x56407bb7c3a2 in ldelf_before_allocation
/tmp/binutils-gdb/ld/ldelf.c:1840:10
    #6 0x56407bb5d7ea in gldelf_x86_64_before_allocation
/tmp/binutils-gdb/ld/eelf_x86_64.c:172:3
    #7 0x56407bb5446b in elf_x86_64_before_allocation
/tmp/binutils-gdb/ld/eelf_x86_64.c:115:3
    #8 0x56407bb38a46 in ldemul_before_allocation
/tmp/binutils-gdb/ld/ldemul.c:96:3
    #9 0x56407baf5bcf in lang_process /tmp/binutils-gdb/ld/ldlang.c:8591:3
    #10 0x56407bb238d2 in main /tmp/binutils-gdb/ld/./ldmain.c:533:3
    #11 0x7f93a34f2082 in __libc_start_main
/build/glibc-LcI20x/glibc-2.31/csu/../csu/libc-start.c:308:16
    #12 0x56407b9f5e6d in _start (/tmp/binutils-gdb/bins/bin/ld+0x385e6d)
(BuildId: 10d4dd0ec0a37f5a)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /tmp/binutils-gdb/bfd/elf64-x86-64.c:1821:16 in
elf_x86_64_convert_load_reloc
==1298944==ABORTING

** Env **
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.6 LTS
Release:        20.04
Codename:       focal

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to