bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug binutils/21664] New: An integer overflow in the objdump tool of the


From: v.owl337 at gmail dot com
Subject: [Bug binutils/21664] New: An integer overflow in the objdump tool of the binutils latest version.
Date: Fri, 23 Jun 2017 14:46:08 +0000

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

            Bug ID: 21664
           Summary: An integer overflow in the objdump tool of the
                    binutils latest version.
           Product: binutils
           Version: 2.29 (HEAD)
            Status: UNCONFIRMED
          Severity: critical
          Priority: P2
         Component: binutils
          Assignee: unassigned at sourceware dot org
          Reporter: v.owl337 at gmail dot com
  Target Milestone: ---

Created attachment 10216
  --> https://sourceware.org/bugzilla/attachment.cgi?id=10216&action=edit
Triggered by ./objdump -S POC1

The debugging information is as follows:

$./objdump -S POC1

ASAN:SIGSEGV
=================================================================
==51582==ERROR: AddressSanitizer: SEGV on unknown address 0x255a0782 (pc
0x082abe10 bp 0xf3f01eb4 sp 0xffe74620 T0)
    #0 0x82abe0f in elf_x86_64_get_plt_sym_val
/home/icy/real/binutils-2.28/bfd/elf64-x86-64.c:6669
    #1 0x82f36fa in _bfd_elf_ifunc_get_synthetic_symtab
/home/icy/real/binutils-2.28/bfd/elf-ifunc.c:425
    #2 0x82aacd9 in elf_x86_64_get_synthetic_symtab
/home/icy/real/binutils-2.28/bfd/elf64-x86-64.c:6700
    #3 0x8069013 in dump_bfd objdump.c:3448
    #4 0x806b0ce in display_object_bfd objdump.c:3526
    #5 0x806b0ce in display_any_bfd objdump.c:3615
    #6 0x8056562 in display_file objdump.c:3636
    #7 0x8056562 in main objdump.c:3919
    #8 0xf703679d in __libc_start_main (/lib32/libc.so.6+0x1879d)
    #9 0x805944b  (/home/icy/real/binutils-2.28/binutils/objdump+0x805944b)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV
/home/icy/real/binutils-2.28/bfd/elf64-x86-64.c:6669 elf_x86_64_get_plt_sym_val
==51582==ABORTING

This is an Integer Overflow in line elf64-86-64.c:6655 at function
elf_x86_64_get_plt_sym_val(). With the exact input we provided, line
elf64-86-64.c:6655 will run multiple
times, but in the 90th cycle,the value of reloc_index  is calculated as
3338665986, which exceeds the maximum range of long.

6586 static bfd_vma *
6587 elf_x86_64_get_plt_sym_val (bfd *abfd, asymbol **dynsyms, asection *plt,
6588                             asection *relplt)
6589 {
...
6651       if (p->howto->type != R_X86_64_JUMP_SLOT
6652           && p->howto->type != R_X86_64_IRELATIVE)
6653         continue;
6654 
6655       reloc_index = H_GET_32 (abfd, (plt_contents + plt_offset
6656                                      + bed->plt_reloc_offset));
6657       if (reloc_index < count)
6658         {
6659           if (plt_bnd)
6660             {
...

Credits:

This vulnerability is detected by team OWL337, with our custom fuzzer collAFL.
Please contact address@hidden   and address@hidden if you need
more info about the team, the tool or the vulnerability.

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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]