CVE-2024-53589
High · 8.4CVSS
8.4
EPSS
0.3%
Published
Dec 5, 2024
CISA due date
—
Cloudanix analysis
A bug in software that reads certain types of program files could let someone take over your computer if you open a bad file with it.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Low
- Impact
- Full Compromise
- Component
- Library
- Class
- Buffer Overflow
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Buffer overflow in BFD library during tekhex format parsing allows memory corruption, potentially leading to arbitrary code execution or denial of service when processing malicious files with objdump or dependent tools.
Why it matters to the business
Attackers could gain control of systems used for binary analysis or reverse engineering, risking data theft, malware deployment, or operational disruption; low exploit likelihood but high severity on affected legacy systems like Ubuntu 14.04.
How an attack unfolds
An attacker crafts a malicious tekhex file that triggers the overflow in BFD handling, then convinces a user or automated process to invoke objdump or lhasa on the file, leading to code execution in the context of the running process.
How to fix it
Upgrade lhasa on Ubuntu 14.04 LTS to 0.0.7-2+deb7u1ubuntu0.14.04.1 or later; for GNU objdump/binutils upgrade to a version beyond 2.43 that addresses the BFD tekhex parsing issue; consider retiring unsupported Ubuntu 14.04 systems.
How to confirm the fix worked
Verify package versions match the fixed releases; test by attempting to process known-good and crafted tekhex samples in a sandbox to confirm no crash or overflow occurs post-upgrade.
Typical attack path
- Craft tekhex file exploiting BFD buffer handling flaw
- Deliver file via email, download, or shared storage
- Victim executes objdump/lhasa on the file locally with no privileges required
- Overflow corrupts memory enabling shellcode or crash
How to detect it
Review logs from binary analysis tools or process execution for unexpected crashes or segfaults when handling tekhex or unknown format files; check for unusual child processes spawned by objdump or lhasa.
What your security team should do
- Prioritize upgrade of lhasa and binutils packages on all Ubuntu 14.04 systems immediately due to high CVSS
- Scan for and isolate any remaining legacy systems running affected versions
- Implement file-type restrictions or sandboxing for binary analysis tools
- Monitor EPSS and threat feeds for any rise in exploitation activity
The record
GNU objdump 2.43 is vulnerable to Buffer Overflow in the BFD (Binary File Descriptor) library's handling of tekhex format files.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | binutils | 0 | No fix |
| Debian:12 | binutils | 0 | No fix |
| Debian:13 | binutils | 0 | No fix |
| Debian:13 | binutils | 0 | 2.44-1 |
| Ubuntu:20.04:LTS | binutils | 0 | 2.34-6ubuntu1.9 |
| Ubuntu:22.04:LTS | binutils | 0 | 2.38-4ubuntu2.6 |
| Ubuntu:24.04:LTS | binutils | 0 | 2.42-4ubuntu2.3 |
| Ubuntu:24.10 | binutils | 0 | 2.43.1-4ubuntu1 |
Related vulnerabilities
- CVE-2024-57360 https://www.gnu.org/software/binutils/ nm >=2.43 is affected by: Incorrect Access Control. 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-2014-8501 The _bfd_XXi_swap_aouthdr_in function in bfd/peXXigen.c in GNU binutils 2.24 and earlier… 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