CVE-2014-8501
NoneCVSS
—
EPSS
5.2%
Published
Dec 9, 2014
CISA due date
—
Cloudanix analysis
A bug in programs that read certain Windows executable files could let attackers crash those programs or run harmful code simply by getting a specially crafted file opened.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Out-of-bounds write in the BFD library's _bfd_XXi_swap_aouthdr_in function when parsing a crafted NumberOfRvaAndSizes field in the AOUT header of a PE executable, leading to memory corruption.
Why it matters to the business
Processing untrusted PE binaries with affected tools can result in crashes or potential code execution, disrupting build pipelines, malware analysis, and reverse-engineering workflows; the issue has been public for over a decade with available exploits.
How an attack unfolds
An attacker creates a malicious PE executable containing a manipulated AOUT header, then causes a victim system or tool to parse the file using vulnerable binutils components such as objdump or readelf, triggering the memory corruption.
How to fix it
Upgrade the affected package to version 4.5.0-r1 or later; rebuild any downstream containers or distributions that embed vulnerable binutils 2.24 or earlier.
How to confirm the fix worked
Confirm the installed binutils version reports a fixed release; attempt to parse a test PE file containing an oversized NumberOfRvaAndSizes field and verify no crash or corruption occurs.
Typical attack path
- Craft a PE executable with an invalid NumberOfRvaAndSizes value in the AOUT header
- Deliver the file to a target that will process it with binutils
- Trigger parsing of the malformed header
- Achieve out-of-bounds write resulting in denial of service or potential code execution
How to detect it
Review application and system logs for unexpected crashes or segmentation faults in binutils utilities during PE file processing; search for recent creation or receipt of PE files immediately preceding such events.
What your security team should do
- Apply the fixed package version immediately across all environments
- Inventory and restrict use of binutils tools against untrusted binaries
- Enable sandboxing or container isolation for binary analysis workflows
The record
The _bfd_XXi_swap_aouthdr_in function in bfd/peXXigen.c in GNU binutils 2.24 and earlier allows remote attackers to cause a denial of service (out-of-bounds write) and possibly have other unspecified impact via a crafted NumberOfRvaAndSizes field in the AOUT header in a PE executable.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:10 | gdb | 0 | No fix |
| Debian:11 | binutils | 0 | 2.24.90.20141104-1 |
| Debian:11 | binutils-mingw-w64 | 0 | 5.2 |
| Debian:11 | gdb | 0 | No fix |
| Debian:12 | binutils | 0 | 2.24.90.20141104-1 |
| Debian:12 | binutils-mingw-w64 | 0 | 5.2 |
| Debian:12 | gdb | 0 | No fix |
| Debian:13 | binutils | 0 | 2.24.90.20141104-1 |
| Debian:13 | binutils-mingw-w64 | 0 | 5.2 |
| Debian:13 | gdb | 0 | No fix |
| Debian:6.0 | binutils | 0 | 2.20.1-16+deb6u1 |
| Debian:7 | binutils | 0 | 2.22-8+deb7u2 |
| Debian:7 | binutils-mingw-w64 | 0 | 2+deb7u1 |
| Mageia:4 | binutils | 0 | 2.24-3.1.mga4 |
| Mageia:5 | gdb | 0 | 7.8.1-7.1.mga5 |
| Red Hat:enterprise_linux:7::client | binutils | 0 | 0:2.23.52.0.1-55.el7 |
| Red Hat:enterprise_linux:7::client | binutils-debuginfo | 0 | 0:2.23.52.0.1-55.el7 |
| Red Hat:enterprise_linux:7::client | binutils-devel | 0 | 0:2.23.52.0.1-55.el7 |
| Red Hat:enterprise_linux:7::computenode | binutils | 0 | 0:2.23.52.0.1-55.el7 |
| Red Hat:enterprise_linux:7::computenode | binutils-debuginfo | 0 | 0:2.23.52.0.1-55.el7 |
| Red Hat:enterprise_linux:7::computenode | binutils-devel | 0 | 0:2.23.52.0.1-55.el7 |
| Red Hat:enterprise_linux:7::server | binutils | 0 | 0:2.23.52.0.1-55.el7 |
| Red Hat:enterprise_linux:7::server | binutils-debuginfo | 0 | 0:2.23.52.0.1-55.el7 |
| Red Hat:enterprise_linux:7::server | binutils-devel | 0 | 0:2.23.52.0.1-55.el7 |
| Red Hat:enterprise_linux:7::workstation | binutils | 0 | 0:2.23.52.0.1-55.el7 |
| Red Hat:enterprise_linux:7::workstation | binutils-debuginfo | 0 | 0:2.23.52.0.1-55.el7 |
| Red Hat:enterprise_linux:7::workstation | binutils-devel | 0 | 0:2.23.52.0.1-55.el7 |
| Ubuntu:14.04:LTS | binutils | 0 | 2.24-5ubuntu3.1 |
| Ubuntu:14.04:LTS | gdb | 0 | 7.7.1-0ubuntu5~14.04.3 |
| Ubuntu:16.04:LTS | gdb | 0 | 7.11.1-0ubuntu1~16.04 |
| Ubuntu:16.04:LTS | gdb | 0 | 7.11.1-0ubuntu1~16.5 |
Related vulnerabilities
- CVE-2024-57360 https://www.gnu.org/software/binutils/ nm >=2.43 is affected by: Incorrect Access Control. Also affects binutils
- CVE-2024-53589 GNU objdump 2.43 is vulnerable to Buffer Overflow in the BFD (Binary File Descriptor)… Also affects binutils
- CVE-2017-17122 The dump_relocs_in_section function in objdump.c in GNU Binutils 2.29.1 does not check… Also affects binutils
- CVE-2017-9742 The score_opcodes function in opcodes/score7-dis.c in GNU Binutils 2.28 allows remote… Also affects binutils
- CVE-2016-2226 Integer overflow in the string_appends function in cplus-dem.c in libiberty allows remote… Also affects binutils
- CVE-2012-3509 Multiple integer overflows in the (1) _objalloc_alloc function in objalloc.c and (2)… Also affects binutils
- CVE-2006-2362 Buffer overflow in getsym in tekhex.c in libbfd in Free Software Foundation GNU Binutils… Also affects binutils
- CVE-2005-4807 Stack-based buffer overflow in the as_bad function in messages.c in the GNU as (gas)… Also affects binutils