GNU Binutils CVE-2025-66864
HIGHAttack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDeliver crafted file or mangled symbol to victim tool
-
Exploitbinutils demangler parses input
-
Executioninvalid handling in d_print_comp_inner
-
Impacttool process crashes (denial of service)
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
|
| Exploitation Conditions | Exploitation requires that a victim run a binutils 2.26 tool that invokes the C++ demangler (c++filt, nm, objdump, addr2line) on attacker-controlled input - a crafted file containing a malformed C++ mangled symbol. The limiting factors are significant: there is no network-facing service, so the attacker must get the malicious input into a local processing step (e.g., CI, build, or binary-analysis pipeline); the impact is confined to crashing the single tool invocation rather than causing a persistent or system-wide outage; and it is tied to the specific legacy version binutils 2.26. |
| Impact | The input CVSS of 7.5 (AV:N/AC:L/PR:N/UI:N/C:N/I:N/A:H) scores this as a network-reachable, unauthenticated availability failure, but the signals do not cohere with the actual vulnerability. The flaw is in d_print_comp_inner within cp-demangle.c - the C++ symbol demangler shared by binutils/libiberty tools (c++filt, nm, objdump) - and the single supporting reference is a crash report filed under a 'cxxfilt' project, indicating the real trigger is a crafted mangled symbol processed locally by a command-line tool, not a network service. CONFLICT TO VERIFY: CVSS asserts AV:N but the demangler is a local batch utility with no network listener - the network vector is almost certainly an overstatement, and realistic exploitation is local (AV:L). A publicly available proof-of-concept exists (publicly available exploit code exists), which raises reproducibility, but there is no CISA KEV listing and no EPSS score was provided in the input, so there is no evidence of active or widespread exploitation. The impact is a process crash of a developer/build utility, not a persistent service outage, so the A:H rating also appears inflated (closer to A:L). Net judgment: this is a low-to-moderate real-world priority - a reproducible denial-of-service in a local parsing tool against an old binutils version (2.26, released 2016), not a high-urgency remotely exploitable issue despite the 7.5 score. |
| Exploit ScenarioDerived | An attacker supplies a crafted object/PE file or a malicious C++ mangled symbol to a victim who runs a binutils 2.26 tool (such as c++filt, nm, or objdump) that invokes the demangler - for example in an automated build, CI, or malware-analysis pipeline that processes untrusted binaries. Parsing the malformed input drives d_print_comp_inner into an invalid state and crashes the tool, denying the analysis/build step. A public proof-of-concept crash file is available, so the condition is trivially reproducible. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 13, 2026
A crafted PE file can cause a denial-of-service crash in GNU Binutils 2.26 when its C++ demangler (d_print_comp_inner in cp-demangle.c) processes malformed input, affecting tools like c++filt, nm, objdump, and addr2line. Exploitation requires a local user to run a vulnerable tool on the malicious file, resulting in a crash of that single invocation; there is no network-facing service, and the NVD CVSS of 7.5 (AV:N) overstates the actual risk as assessed (AV:L, low availability impact). Publicly available exploit code exists, but the vulnerability is not known to be actively exploited.
RemediationAI
No vendor-released patch is identified for CVE-2025-66864 at time of analysis. The primary remediation is to upgrade to a current, supported version of GNU Binutils (newer than 2.26) from an actively maintained distribution; since Binutils 2.26 dates to 2016, most modern distributions already ship later versions with potential fixes. If upgrading is not immediately possible, avoid running Binutils 2.26 tools that invoke the C++ demangler (c++filt, nm, objdump, addr2line) on untrusted or attacker-controlled PE files, and restrict their use to trusted inputs only. There is no known configuration workaround specific to the demangler; disabling or replacing the vulnerable tools with alternatives (e.g., using a different demangler or processing files in a sandboxed environment) can reduce exposure, but sandboxing only limits the impact of a crash and does not prevent it. The public exploit code at https://github.com/caozhzh/CRGF-Vul/blob/main/cxxfilt/crash5.md demonstrates the issue, and the practical impact is limited to a single tool invocation crash.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability resides in the C++ demangling component of GNU Binutils, a suite of binary utilities used for handling object files and executables. The function d_print_comp_inner in cp-demangle.c is responsible for printing components of demangled C++ symbols; it fails to properly validate input when processing a crafted PE (Portable Executable) file, leading to a crash. This is classified as CWE-20 (Improper Input Validation). The affected product is confirmed via CPE as cpe:2.3:a:gnu:binutils:2.26:*:*:*:*:*:*:*, indicating that only version 2.26 is known to be affected. The demangler is invoked by tools such as c++filt, nm, objdump, and addr2line, so any local process that parses untrusted binaries with these tools is at risk. The public exploit (https://github.com/caozhzh/CRGF-Vul/blob/main/cxxfilt/crash5.md) demonstrates a crash, confirming the denial-of-service impact.
Know when Binutils gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
Sources disagree (Low–High)AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
The demangler is a local file-processing utility (AV:L) with no auth needed (PR:N); impact is a single-process crash, not a service outage, so A:L and C/I:N.
vuln.today treats the vendor’s rating as authoritative. A higher third-party CVSS (e.g. CISA-ADP) is shown for transparency but does not drive the headline severity.
CVSS VectorNVD
DescriptionNVD
An issue was discovered in function d_print_comp_inner in file cp-demangle.c in BinUtils 2.26 allows attackers to cause a denial of service via crafted PE file.
Executive ViewAI
A malformed PE file can crash GNU Binutils 2.26 through its C++ demangler, disrupting developer and diagnostic command-line tools such as c++filt, nm, objdump, and addr2line; publicly available exploit code exists, although the flaw is not known to be actively exploited. Impact is confined to a single crashed tool invocation on the machine of a local user who opens the file, with no network-facing service, no data exposure, and no persistence. Leadership should care because these utilities sit inside build pipelines and malware-analysis workflows, where processing untrusted binaries could cause recoverable but disruptive interruptions.
No vendor-released patch identified at time of analysis. Interim mitigations: prohibit running c++filt, nm, objdump, addr2line, and related Binutils tools directly on untrusted or externally sourced PE files; where analysis is unavoidable, execute the tools in an isolated, non-privileged container or sandbox with CPU/memory limits and automatic restart; verify file provenance before processing; prefer alternative parsers or a newer Binutils build supplied by your distribution maintainer; and monitor build pipelines and analyst toolkits for crash telemetry from these tools as an early indicator of attempted abuse.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Affected Products (CPE)NVD
Stack-based buffer overflow in the ihex_scan function in bfd/ihex.c in GNU binutils 2.24 and earlier allows remote attac
elflink.c in the Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, has a "member a
finish_stab in stabs.c in GNU Binutils 2.30 allows attackers to cause a denial of service (heap-based buffer overflow) o
Heap-based buffer overflow in the pe_print_edata function in bfd/peXXigen.c in GNU binutils 2.24 and earlier allows remo
readelf in GNU Binutils 2.28 is vulnerable to a heap-based buffer over-read while processing corrupt RL78 binaries. Rate
The _bfd_XXi_swap_aouthdr_in function in bfd/peXXigen.c in GNU binutils 2.24 and earlier allows remote attackers to caus
Stack-based buffer overflow in the srec_scan function in bfd/srec.c in GNU binutils 2.24 and earlier allows remote attac
The *regs* macros in opcodes/bfin-dis.c in GNU Binutils 2.28 allow remote attackers to cause a denial of service (buffer
The disassemble_bytes function in objdump.c in GNU Binutils 2.28 allows remote attackers to cause a denial of service (b
The setup_group function in bfd/elf.c in libbfd in GNU binutils 2.24 and earlier allows remote attackers to cause a deni
opcodes/rx-decode.opc in GNU Binutils 2.28 lacks bounds checks for certain scale arrays, which allows remote attackers t
The ieee_object_p function in bfd/ieee.c in the Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU
NVD
CVE.org
EPSS
GitHub
Exploit-DB