GNU Binutils CVE-2025-66862
HIGHAttack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDeliver crafted PE file to analyst or CI
-
ExploitVictim runs binutils demangler (c++filt/nm)
-
ExecutionOverflow gnu_special in cplus-dem.c
-
ImpactUtility process crashes (DoS)
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Heap buffer bounds checking
MITRE ATT&CK
1 technique across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that a victim process an attacker-supplied PE/object file through a binutils tool that invokes the gnu_special C++ demangler in cplus-dem.c (typically c++filt, nm, or objdump against a crafted input). The specific affected build is GNU binutils 2.26. Limiting factors: the attacker must get the malicious file onto a system and have it demangled, so exploitation depends on victim action (running the tool on the file) rather than any listening network service; the impact is confined to a denial of service (process crash) with no code execution, data disclosure, or integrity loss; and the affected 2.26 release dates to 2016, so modern systems with updated binutils are unlikely to be affected. |
| Impact | The input assigns CVSS 7.5 driven entirely by availability impact (A:H) with a network vector (AV:N/AC:L/PR:N/UI:N). This network framing is questionable and should be flagged: the flaw is in the gnu_special C++ name-demangler in cplus-dem.c, reached by processing a crafted PE/object file through binutils tools such as c++filt, nm, or objdump - this is overwhelmingly a local file-processing operation requiring the victim to run a binutils tool against an attacker-supplied file, which implies AV:L and UI:R rather than AV:N/UI:N. The sole impact is a crash (denial of service); there is no confidentiality or integrity impact (C:N/I:N), so even in the worst case this terminates a utility process, not a service or host. Signal cross-reference: a public POC exists (crash reproducer in the referenced CRGF-Vul repository), but the CVE is NOT in CISA KEV and no EPSS score was provided, so there is no evidence of active or widespread exploitation. The combination of POC-only status, DoS-only impact, a short-lived local utility as the target, and an obsolete 2016 version (binutils 2.26) makes this a low real-world priority despite the HIGH nominal CVSS - it is a classic high-CVSS-but-low-operational-risk fuzzing crash. MISSING DATA: no EPSS, no vendor/GNU advisory confirming affected version range, and the CVSS network vector conflicts with the local nature of the demangler - verify with the binutils maintainers. |
| Exploit ScenarioDerived | An attacker crafts a malformed PE/object file containing a mangled C++ symbol that triggers the heap buffer overflow in gnu_special, then induces a developer, analyst, or automated build/CI pipeline to run a binutils demangling tool (e.g. c++filt, nm, or objdump) against it. The tool crashes, denying the demangling/analysis operation. A public crash proof-of-concept exists, but the impact is limited to terminating the utility process rather than code execution or service compromise. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 07, 2026
Denial of service in GNU Binutils 2.26 is caused by a heap-based buffer overflow (CWE-122) in the gnu_special function of cplus-dem.c when a crafted PE/object file is processed by a demangling tool such as c++filt, nm, or objdump. The authoritative assessment treats this as locally triggered with user interaction (AV:L/AC:L/PR:N/UI:R), limiting impact to availability (A:H) with no code execution, data disclosure, or integrity loss; an input vector claiming AV:N should not be used to imply a remotely reachable service. Publicly available exploit code exists, but no confirmed active exploitation (CISA KEV) is indicated in the provided data.
RemediationAI
No vendor-released patch with an exact fixed version is identified in the provided data at time of analysis, so remediation should prioritize upgrading from GNU Binutils 2.26 to a currently maintained release and confirming that the demangling path has bounds-checking fixes. If immediate upgrade is not possible, do not run c++filt, nm, objdump, or other demangling consumers on untrusted PE/object files; process untrusted binaries only in disposable sandboxes or containers with reduced privileges, and restrict automated pipelines that demangle externally supplied inputs. These controls trade off functionality and may break workflows that rely on automatic demangling, but they directly remove the user-interaction prerequisite noted in the authoritative assessment. The public PoC reference is https://github.com/caozhzh/CRGF-Vul/blob/main/cxxfilt/crash3.md; no vendor advisory was supplied.
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 resides in GNU binutils' libiberty C++ demangling code, specifically the gnu_special routine in cplus-dem.c. CWE-122 indicates a heap-based buffer overflow, meaning crafted input causes the demangler to write beyond the bounds of a heap buffer, crashing the process. The CPE string cpe:2.3:a:gnu:binutils:2.26:*:*:*:*:*:*:* pins affected code to GNU Binutils 2.26. Tools that invoke this demangler-typically c++filt, nm, and objdump-are the practical attack surface, but because the attacker must supply a PE/object file and convince a victim or pipeline to demangle it, this is not a remotely reachable network service flaw despite the conflicting input CVSS vector.
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
Demangling is a local utility operation on an attacker-supplied file, so AV:L and UI:R; crash-only impact gives A:H with C:N/I:N and no privileges required.
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 VectorVendor: mitre
DescriptionCVE.org
A buffer overflow vulnerability in function gnu_special in file cplus-dem.c in BinUtils 2.26 allows attackers to cause a denial of service via crafted PE file.
Executive ViewAI
GNU Binutils 2.26, a widely used development utility suite, contains a high-severity denial-of-service flaw that can crash demangling tools such as c++filt, nm, and objdump when they process a crafted object file. The issue requires local access and user interaction, so it primarily affects developers, build engineers, and security analysts who handle untrusted files, and it causes availability loss without data compromise or code execution. Leadership should care because it can disrupt build pipelines, debugging, and forensic workflows, and publicly available exploit code exists.
No vendor-released patch identified at time of analysis. Interim mitigations: restrict use of GNU Binutils 2.26 demangling tools (c++filt, nm, objdump) on untrusted PE/object files, run them in isolated/sandboxed environments with least privilege, enforce user interaction controls and application allowlisting, and monitor for crashes or abnormal behavior.
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
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
A heap overflow occurs when a program writes data beyond the bounds of a buffer allocated in the heap memory region.
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