| Titolo | GNU Binutils 2.44 Memory Leak |
|---|
| Descrizione | A memory leak was discovered in the objdump utility within GNU binutils, specifically in the process_debug_info function of binutils/dwarf.c. When processing malformed or fuzzed DWARF sections, the code may allocate memory for debug_information even when it has already been allocated, due to an incorrect check on num_debug_info_entries instead of the proper alloc_num_debug_info_entries.
./binutils/objdump --debugging -D -s poc
==2415053==ERROR: LEAKSANITIZER: DETECTED MEMORY LEAKS
DIRECT LEAK OF 128 BYTE(S) IN 1 OBJECT(S) ALLOCATED FROM:
#0 0X499D5D IN __INTERCEPTOR_MALLOC(/HOME/BINUTILS-GDB/BUILD-2.43/BINUTILS/OBJDUMP+0X499D5D)
#1 0XA4AC1B IN XMALLOC /HOME/BINUTILS-GDB/BUILD-2.43/LIBIBERTY/../../LIBIBERTY/XMALLOC.C:149:12
#2 0X4F0621 IN CMALLOC /HOME/BINUTILS-GDB/BUILD-2.43/BINUTILS/../../BINUTILS/DWARF.C:11617:10
#3 0X4F15E2 IN PROCESS_DEBUG_INFO /HOME/BINUTILS-GDB/BUILD-2.43/BINUTILS/../../BINUTILS/DWARF.C:3794:42
#4 0X50AFB9 IN DISPLAY_DEBUG_INFO /HOME/BINUTILS-GDB/BUILD-2.43/BINUTILS/../../BINUTILS/DWARF.C:7649:10
#5 0X4D976F IN DUMP_DWARF_SECTION /HOME/BINUTILS-GDB/BUILD-2.43/BINUTILS/../../BINUTILS/OBJDUMP.C:4498:6
#6 0X6A4CBA IN BFD_MAP_OVER_SECTIONS /HOME/BINUTILS-GDB/BUILD-2.43/BFD/../../BFD/SECTION.C:1387:5
#7 0X4D51B2 IN DUMP_DWARF /HOME/BINUTILS-GDB/BUILD-2.43/BINUTILS/../../BINUTILS/OBJDUMP.C:4536:3
#8 0X4D2D61 IN DUMP_BFD /HOME/BINUTILS-GDB/BUILD-2.43/BINUTILS/../../BINUTILS/OBJDUMP.C:5819:4
#9 0X4D1CFF IN DISPLAY_OBJECT_BFD /HOME/BINUTILS-GDB/BUILD-2.43/BINUTILS/../../BINUTILS/OBJDUMP.C:5856:7
#10 0X4D1C00 IN DISPLAY_ANY_BFD /HOME/BINUTILS-GDB/BUILD-2.43/BINUTILS/../../BINUTILS/OBJDUMP.C:5943:5
#11 0X4D09FC IN DISPLAY_FILE /HOME/BINUTILS-GDB/BUILD-2.43/BINUTILS/../../BINUTILS/OBJDUMP.C:5964:3
#12 0X4CF026 IN MAIN /HOME/BINUTILS-GDB/BUILD-2.43/BINUTILS/../../BINUTILS/OBJDUMP.C:6381:6
#13 0X7F5681424082 IN __LIBC_START_MAIN /BUILD/GLIBC-B3WQXB/GLIBC-2.31/CSU/../CSU/LIBC-START.C:308:16
INDIRECT LEAK OF 8192 BYTE(S) IN 1 OBJECT(S) ALLOCATED FROM:
#0 0X499D5D IN __INTERCEPTOR_MALLOC(/HOME/BINUTILS-GDB/BUILD-2.43/BINUTILS/OBJDUMP+0X499D5D)
#1 0XA4AD0A IN XREALLOC /HOME/BINUTILS-GDB/BUILD-2.43/LIBIBERTY/../../LIBIBERTY/XMALLOC.C:179:14
#2 0X4F0768 IN XCREALLOC /HOME/BINUTILS-GDB/BUILD-2.43/BINUTILS/../../BINUTILS/DWARF.C:11654:10
#3 0X52834E IN READ_AND_DISPLAY_ATTR_VALUE /HOME/BINUTILS-GDB/BUILD-2.43/BINUTILS/../../BINUTILS/DWARF.C:3018:7
#4 0X521642 IN READ_AND_DISPLAY_ATTR /HOME/BINUTILS-GDB/BUILD-2.43/BINUTILS/../../BINUTILS/DWARF.C:3471:10
#5 0X4F6218 IN PROCESS_DEBUG_INFO /HOME/BINUTILS-GDB/BUILD-2.43/BINUTILS/../../BINUTILS/DWARF.C:4274:15
#6 0X50AFB9 IN DISPLAY_DEBUG_INFO /HOME/BINUTILS-GDB/BUILD-2.43/BINUTILS/../../BINUTILS/DWARF.C:7649:10
#7 0X4D976F IN DUMP_DWARF_SECTION /HOME/BINUTILS-GDB/BUILD-2.43/BINUTILS/../../BINUTILS/OBJDUMP.C:4498:6
#8 0X6A4CBA IN BFD_MAP_OVER_SECTIONS /HOME/BINUTILS-GDB/BUILD-2.43/BFD/../../BFD/SECTION.C:1387:5
#9 0X4D51B2 IN DUMP_DWARF /HOME/BINUTILS-GDB/BUILD-2.43/BINUTILS/../../BINUTILS/OBJDUMP.C:4536:3
#10 0X4D2D61 IN DUMP_BFD /HOME/BINUTILS-GDB/BUILD-2.43/BINUTILS/../../BINUTILS/OBJDUMP.C:5819:4
#11 0X4D1CFF IN DISPLAY_OBJECT_BFD /HOME/BINUTILS-GDB/BUILD-2.43/BINUTILS/../../BINUTILS/OBJDUMP.C:5856:7
#12 0X4D1C00 IN DISPLAY_ANY_BFD /HOME/BINUTILS-GDB/BUILD-2.43/BINUTILS/../../BINUTILS/OBJDUMP.C:5943:5
#13 0X4D09FC IN DISPLAY_FILE /HOME/BINUTILS-GDB/BUILD-2.43/BINUTILS/../../BINUTILS/OBJDUMP.C:5964:3
#14 0X4CF026 IN MAIN /HOME/BINUTILS-GDB/BUILD-2.43/BINUTILS/../../BINUTILS/OBJDUMP.C:6381:6
#15 0X7F5681424082 IN __LIBC_START_MAIN /BUILD/GLIBC-B3WQXB/GLIBC-2.31/CSU/../CSU/LIBC-START.C:308:16
SUMMARY: ADDRESSSANITIZER: 8320 BYTE(S) LEAKED IN 2 ALLOCATION(S). |
|---|
| Fonte | ⚠️ https://gitlab.com/gnutools/binutils-gdb/-/commit/e51fdff7d2e538c0e5accdd65649ac68e6e0ddd4 |
|---|
| Utente | arthurx (UID 87796) |
|---|
| Sottomissione | 24/07/2025 13:57 (11 mesi fa) |
|---|
| Moderazione | 26/07/2025 14:56 (2 days later) |
|---|
| Stato | Accettato |
|---|
| Voce VulDB | 317813 [GNU Binutils 2.44 DWARF Section binutils/dwarf.c process_debug_info negazione del servizio] |
|---|
| Punti | 20 |
|---|