Executive brief
A vulnerability exists in GNU Binutils, a collection of programming tools used for creating and managing executable files and libraries. An attacker with local access to a system could use a specially crafted file to cause memory corruption in the 'ld' linker component. This could lead to a system crash or potentially allow for unauthorized actions, impacting the reliability and security of development environments.
Technical details
A memory corruption vulnerability exists in the GNU Binutils 'ld' linker within the elf_gc_sweep function in bfd/elflink.c. The issue stems from a failure to properly check for empty groups when performing garbage collection on sections (--gc-sections). A local attacker can trigger a segmentation fault or memory corruption by providing a fuzzed or specially crafted object file to the linker. This was identified via AddressSanitizer as a null pointer dereference or improper memory access during the sweep phase. The vulnerability is addressed in GNU Binutils version 2.45.
Affected products
- GNU Binutils up to 2.44
Timeline
- 2025-04-09: disclosed: Initial bug report on Sourceware Bugzilla
- 2025-04-10: patched: Fix committed to master branch
- 2025-05-27: advisory: CVE published
References
- https://sourceware.org/bugzilla/attachment.cgi?id=16010
- https://sourceware.org/bugzilla/show_bug.cgi?id=32858
- https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=d1458933830456e54223d9fc61f0d9b3a19256f5
- https://vuldb.com/?ctiid.310346
- https://vuldb.com/?id.310346
- https://vuldb.com/?submit.584634
- https://www.gnu.org/