Skip to main content

GNU Binutils CVE-2025-66862

HIGH
Heap-based Buffer Overflow (CWE-122)
2025-12-29 cve@mitre.org
High
Disputed · 7.5 Vendor: mitre
View

Attack ChainAIDerived

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

  1. Access
    Deliver crafted PE file to analyst or CI
  2. Exploit
    Victim runs binutils demangler (c++filt/nm)
  3. Execution
    Overflow gnu_special in cplus-dem.c
  4. Impact
    Utility 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.

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

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

Alert me

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

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.

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
4.0 AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/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 VectorVendor: mitre

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

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

Why It Matters

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.

Business Impact: Medium
Compensating Controls

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

EPSS Score
0.4%
Top 71% exploitable
Prevalence
Medium
binutils is ubiquitous but affected v2.26 is an obsolete 2016 release
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.4%
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
Medium

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

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

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