GNU Binutils CVE-2025-66861
LOWAttack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDeliver crafted file with malicious symbol
-
ExploitVictim runs c++filt/demangler on it
-
ExecutionTrigger flaw in d_unqualified_name parser
-
ImpactDemangling utility crashes (DoS)
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an attacker to supply a crafted input (a malicious symbol name, per the description delivered via a PE file) that is then processed by a GNU Binutils 2.26 demangler using the d_unqualified_name function in cp-demangle.c - in practice the c++filt/cxxfilt utility or any tool linking libiberty's C++ demangler. Limiting factors are significant: the vector is local (AV:L), a user must actively run the vulnerable demangling tool on the attacker-controlled input (UI:R), the NVD rates attack complexity as high (AC:H), and the only consequence is a crash of that single utility (A:L) with no confidentiality or integrity impact and no scope change - so this cannot be triggered remotely or unattended and does not compromise the host. |
| Impact | This is a genuinely low-priority issue and the multiple signals agree rather than conflict. The provided CVSS 3.1 vector (AV:L/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:L, base 2.5) describes a purely local vulnerability requiring user interaction, with no confidentiality or integrity impact and only limited availability impact - consistent with a tool crash rather than code execution. EPSS reinforces this: 0.15% probability at the 3rd percentile indicates essentially no observed real-world exploitation interest. The CVE is NOT on CISA KEV, so there is no evidence of active exploitation. Public exploit/crash reproducer code does exist (a crash write-up in the CRGF-Vul repository targeting cxxfilt), but POC availability is a separate signal from active exploitation and does not elevate this to priority status given the local vector and trivial impact (crashing a command-line demangling utility). No SSVC decision data was supplied in the input. One data note: the description says the crash is triggered via a crafted PE file, while the only reference is a cxxfilt (c++filt / symbol demangler) crash - these are consistent if a symbol string from a PE file is demangled, but the exact input path should be verified against the upstream binutils bug report, which was not provided. Net assessment: low real-world risk; a CVSS 2.5 denial-of-service that aligns with its low EPSS and non-KEV status. |
| Exploit ScenarioDerived | An attacker crafts a malicious file (or a symbol name within one) and convinces a developer, analyst, or build/CI process to run a binutils demangling utility such as c++filt/cxxfilt on it; the d_unqualified_name routine in cp-demangle.c mishandles the input and the tool crashes, denying that operation. A public crash reproducer exists, but exploitation requires local access and the victim actively running the vulnerable tool on the attacker-supplied input (AV:L, UI:R), and the impact is limited to crashing the utility - no code execution or data exposure. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 13, 2026
Denial of service in GNU Binutils 2.26 occurs when a crafted PE file supplies a malicious symbol name that is processed by the C++ demangler's d_unqualified_name function in cp-demangle.c, typically through c++filt, cxxfilt, or another tool linked against libiberty. Exploitation requires local access and user interaction to run the vulnerable demangling tool on the attacker-controlled input, and the only resulting impact is a crash of that utility with no confidentiality or integrity effect. Publicly available exploit code exists, but no CISA KEV entry is present and EPSS is 0.15% (3rd percentile), keeping priority low.
RemediationAI
No vendor-released patch with an exact fix version is identified in the provided data, so do not claim a specific patched Binutils release unless upstream confirms it. The most direct mitigation is to avoid running c++filt, cxxfilt, or any libiberty-based demangling tool on untrusted PE files or untrusted symbol names; this prevents the crafted input from reaching d_unqualified_name but breaks legitimate demangling workflows for untrusted data. Where demangling must be performed, run it in a sandboxed, low-privilege process with resource limits so a crash cannot affect other work, accepting that sandboxing may contain but not eliminate the denial of service. Restrict or sanitize inputs to trusted symbol names and monitor the GNU Binutils project for a fixed release; the public PoC at https://github.com/caozhzh/CRGF-Vul/blob/main/cxxfilt/crash1.md can be used to reproduce and regression-test. Because EPSS is 0.15%, no CISA KEV listing is present, and exploitation requires local access plus user interaction, remediation can be prioritized below remotely exploitable or high-impact issues.
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 flaw is in GNU Binutils 2.26's C++ demangling implementation, specifically function d_unqualified_name in cp-demangle.c, which is part of libiberty and used by utilities such as c++filt. The CPE cpe:2.3:a:gnu:binutils:2.26:*:*:*:*:*:*:* identifies the affected release. The CWE-400 (Uncontrolled Resource Consumption) classification points to a resource-exhaustion or crash condition triggered while parsing an attacker-controlled mangled symbol name delivered via a crafted PE file; the independent assessment limits the consequence to denial of service against the single demangling process, with no scope change and no impact to confidentiality or integrity. The NVD CVSS vector is AV:L/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:L, while the independent assessment lowers complexity to AC:L; both agree the issue is local, requires user interaction, needs no privileges, and has only low availability 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
AV:L/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:L
Local because a demangler must process attacker input, UI:R since a victim must run the tool, and with a public reproducer AC:L; impact is only a tool crash so A:L, C/I:N.
Primary rating from Vendor (mitre).
CVSS VectorVendor: mitre
DescriptionCVE.org
An issue was discovered in function d_unqualified_name in file cp-demangle.c in BinUtils 2.26 allowing attackers to cause a denial of service via crafted PE file.
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)CVE.org
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