Skip to main content

GNU Binutils CVE-2025-66864

HIGH
Improper Input Validation (CWE-20)
2025-12-29 cve@mitre.org
High
Disputed · 7.5 NVD
View

Attack ChainAIDerived

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

  1. Access
    Deliver crafted file or mangled symbol to victim tool
  2. Exploit
    binutils demangler parses input
  3. Execution
    invalid handling in d_print_comp_inner
  4. Impact
    tool 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – 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)
NVD PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 4.0 MEDIUM

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.

3.1 AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
4.0 AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
Red Hat 3.3 LOW

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

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

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

Why It Matters

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.

Business Impact: Low
Compensating Controls

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

EPSS Score
0.2%
Top 86% exploitable
Prevalence
High
GNU binutils is a core toolchain shipped across nearly all Linux systems
Exploit
POC
Public exploit code exists
Data Quality
3 sources
Confidence: Low

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 HIGH
CISA KEV No
Public POC Yes
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Open
Automatable· derived
Yes
Human Impact
Low

Priority Score

58
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
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)NVD

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

Vendor StatusVendor

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