Skip to main content

GNU Binutils CVE-2025-66861

LOW
Uncontrolled Resource Consumption (CWE-400)
2025-12-29 cve@mitre.org
2.5
CVSS 3.1 · Vendor: mitre
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Deliver crafted file with malicious symbol
  2. Exploit
    Victim runs c++filt/demangler on it
  3. Execution
    Trigger flaw in d_unqualified_name parser
  4. Impact
    Demangling 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.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
No patch listed yet 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Vendor (mitre) PRIMARY 2.5 LOW
AV:L/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:L
vuln.today AI 3.3 LOW

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.

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L
4.0 AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (mitre).

CVSS VectorVendor: mitre

Attack Vector
Local
Attack Complexity
High
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
Low

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

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Ubiquitous
GNU Binutils is core toolchain shipped on nearly all Linux systems
Exploit
POC
Public exploit code exists
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity LOW
CISA KEV No
Public POC Yes
EPSS 0.1%
Patch available No
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
High

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +12
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

Affected Products (CPE)CVE.org

cpe:2.3:a:gnu:binutils:2.26:*:*:*:*:*:*:*
CVE-2014-8503 HIGH POC
7.5 Dec 09

Stack-based buffer overflow in the ihex_scan function in bfd/ihex.c in GNU binutils 2.24 and earlier allows remote attac

CVE-2017-7614 CRITICAL POC
9.8 Apr 09

elflink.c in the Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, has a "member a

CVE-2018-12699 CRITICAL POC
9.8 Jun 23

finish_stab in stabs.c in GNU Binutils 2.30 allows attackers to cause a denial of service (heap-based buffer overflow) o

CVE-2014-8502 HIGH POC
7.5 Dec 09

Heap-based buffer overflow in the pe_print_edata function in bfd/peXXigen.c in GNU binutils 2.24 and earlier allows remo

CVE-2017-6969 CRITICAL POC
9.1 Mar 17

readelf in GNU Binutils 2.28 is vulnerable to a heap-based buffer over-read while processing corrupt RL78 binaries. Rate

CVE-2014-8501 HIGH POC
7.5 Dec 09

The _bfd_XXi_swap_aouthdr_in function in bfd/peXXigen.c in GNU binutils 2.24 and earlier allows remote attackers to caus

CVE-2014-8504 HIGH POC
7.5 Dec 09

Stack-based buffer overflow in the srec_scan function in bfd/srec.c in GNU binutils 2.24 and earlier allows remote attac

CVE-2017-9749 HIGH POC
7.8 Jun 19

The *regs* macros in opcodes/bfin-dis.c in GNU Binutils 2.28 allow remote attackers to cause a denial of service (buffer

CVE-2017-9746 HIGH POC
7.8 Jun 19

The disassemble_bytes function in objdump.c in GNU Binutils 2.28 allows remote attackers to cause a denial of service (b

CVE-2014-8485 HIGH POC
7.5 Dec 09

The setup_group function in bfd/elf.c in libbfd in GNU binutils 2.24 and earlier allows remote attackers to cause a deni

CVE-2017-9750 HIGH POC
7.8 Jun 19

opcodes/rx-decode.opc in GNU Binutils 2.28 lacks bounds checks for certain scale arrays, which allows remote attackers t

CVE-2017-9748 HIGH POC
7.8 Jun 19

The ieee_object_p function in bfd/ieee.c in the Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy