Skip to main content

yaml-cpp EUVDEUVD-2026-84854

| CVE-2026-75432 MEDIUM
Untrusted Pointer Dereference (CWE-822)
2026-09-22 mitre GHSA-8gfp-q62c-5p3c
5.1
CVSS 3.1 · Vendor: mitre
View

Attack ChainAIDerived

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

  1. Access
    Deliver malformed YAML to yaml-cpp parser
  2. Exploit
    Stale simple key crosses line break
  3. Execution
    PopIndent underflows empty indent stack
  4. Impact
    Invalid dereference crashes parser / leaks memory

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Untrusted pointer prevention
Exploitation Conditions

The consuming application must parse untrusted/attacker-controlled YAML using yaml-cpp 0.9.0. The specific trigger is a malformed YAML document with an unverified simple key (e.g. a plain scalar spanning a line break, as in issue #1475's input '!\n: |\nb\n>\n|\n !\n>') that leaves a stale simple key referencing an indent that gets popped, driving Scanner::PopAllIndents to underflow the indentation stack. Limiting factors: no public weaponized exploit for data theft (only a crash reproducer); impact is mostly a denial-of-parse/crash with at most Low confidentiality leakage; CVSS marks the vector local (AV:L), so an attacker needs a path to supply YAML to the vulnerable parser, and only yaml-cpp 0.9.0 is implicated.

Impact

Signals point to a modest, lower-priority issue despite the 'sensitive information' framing. CVSS base is 5.1 (Medium) with vector AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:L, i.e. local access, low complexity, no authentication, and only Low confidentiality plus Low availability impact. EPSS is 0.28% (21st percentile), indicating low predicted exploitation; this CVE is NOT in CISA KEV, so there is no confirmed active exploitation. Two conflicts must be flagged explicitly: (1) the description says 'remote attacker' but the CVSS vector is AV:L (local) - the real attack surface depends on how the consuming application feeds YAML to the parser, so verify the deployment context rather than assuming remote reachability; (2) the description and CWE-822 (untrusted pointer dereference / information disclosure) conflict with the actual fix in PR #1476, which guards against an indentation-stack underflow in Scanner::PopAllIndents - behavior that is primarily a parser crash/DoS (consistent with the A:L in the vector) rather than a reliable data-leak primitive. Net: treat as a routine library-hardening patch for anyone parsing untrusted YAML with yaml-cpp 0.9.0, not an emergency.

Exploit ScenarioDerived

An application that embeds yaml-cpp 0.9.0 parses attacker-supplied YAML; a crafted document containing a stale, unverified simple key that spans a line break drives Scanner::PopIndent()/PushIndentTo() to pop from an empty indentation stack, causing an invalid dereference and a parser crash (with potential limited memory exposure). A concrete reproducer input exists publicly in GitHub issue #1475 and as a regression test in PR #1476. Exploitation is low-complexity but, per the CVSS vector, requires local access (AV:L) to reach the parser with the malicious input.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 03, 2026

Parsing a crafted, malformed YAML document with yaml-cpp 0.9.0 can underflow the scanner's indentation stack, crashing the parser and potentially leaking small amounts of process memory. The trigger is an unverified simple key - for example a plain scalar that spans a line break - which leaves a stale reference to an indent level that is subsequently popped, driving Scanner::PopAllIndents() past the bottom of the stack (CWE-822, untrusted pointer dereference); the practical outcome is a denial-of-parse/crash with at most Low confidentiality impact. Only yaml-cpp 0.9.0 is implicated, the consuming application must actually parse untrusted YAML for the bug to be reachable, and the assessed vector (CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:L, 5.1) reflects that local access requirement; EPSS is a low 0.28% (21st percentile) and there is no public exploit code identified at time of analysis, only a crash reproducer documented in upstream issue #1475 and fixed by pull request #1476.

RemediationAI

Upstream fix available (PR/commit); released patched version not independently confirmed. Apply the change in yaml-cpp pull request https://github.com/jbeder/yaml-cpp/pull/1476, which adds an INDENT_STACK_UNDERFLOW exception to PopAllIndents(), invalidates stale simple keys in ScanNextToken() when the top indent does not match the pending key, and ships a regression test, or upgrade to the first tagged yaml-cpp release that includes it once published (check https://github.com/jbeder/yaml-cpp/issues/1475 for the release note). If code cannot be rebuilt immediately, the highest-value compensating control is to stop feeding untrusted YAML to a 0.9.0-based parser: terminate the parse early or reject documents that mix plain scalars across line breaks with block scalar indicators, and keep parsing in a separate worker process with bounded memory and a hard timeout so an underflow crashes only the sandbox rather than the host service - the trade-off is that legitimate complex multi-line YAML may be rejected or that you add a process boundary and its latency. Pre-validating or normalizing input with an independent YAML implementation before it reaches yaml-cpp adds a second parser to maintain and can silently alter documents that yaml-cpp would accept, and restricting who can submit YAML (authenticated configuration endpoints only) reduces reachability but does not eliminate the bug for multi-tenant or file-upload paths. Given EPSS 0.28% and no public exploit code, patching on the normal maintenance cycle is reasonable; there is no need for emergency mitigation.

Affected VersionsENISA

n/a n/a

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

yaml-cpp is a widely embedded C++ YAML 1.2 parser used by build tooling, robotics stacks (for example ROS), configuration loaders and other native applications. Its Scanner tokenizes input and maintains two coordinated structures: an indentation stack (m_indents, manipulated by PushIndentTo() and PopIndent()) and a set of potential simple keys (m_simpleKeys), each of which can hold a pointer (pIndent) to the indent level that was active when the key was recorded. The root-cause class here is CWE-822 (untrusted pointer dereference): when a plain scalar spans a line break, the pending simple key can remain unverified while its associated indent level is popped, leaving a dangling pIndent. PopAllIndents() then walks the indent stack without an emptiness check, so the stale key causes an underflow past the base of the stack and an out-of-bounds/untrusted dereference. The upstream fix in PR #1476 adds an INDENT_STACK_UNDERFLOW parser exception to exclude this path from being reached, and in ScanNextToken() requires that the top-of-stack indent actually match the unverified simple key's pIndent before popping, otherwise calling InvalidateSimpleKey(); a regression test 'LiteralScalarWithMultiLineUnverifiedPotentialSimpleKey' exercises the exact issue #1475 input ('!\n: |\nb\n>\n|\n !\n>'). The CPE field supplied with the advisory is an unpopulated placeholder (cpe:2.3:a:n/a:n/a), so product identification rests on the description, ENISA EUVD record EUVD-2026-84854 and the upstream GitHub issue/PR rather than on structured CPE data.

Know when Yaml Cpp 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 5.1 MEDIUM
AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:L
vuln.today AI 5.1 MEDIUM

Library parses supplied input so PR:N/UI:N/AC:L; AV:L mirrors NVD's local framing; fix shows a crash (A:L) with at most minor memory exposure (C:L) and no integrity impact.

3.1 AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:L
4.0 AV:L/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:L/SC:N/SI:N/SA:N
SUSE 6.1 MEDIUM
AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H
Red Hat 6.5 MEDIUM

Primary rating from Vendor (mitre).

CVSS VectorVendor: mitre

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

Lifecycle Timeline

2
CVSS changed
Oct 03, 2026 - 16:22 NVD
5.1 (MEDIUM)
CVE Published
Sep 22, 2026 - 00:00 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

An issue in yaml-cpp 0.9.0 allows a remote attacker to obtain sensitive information via the src/scanner.cpp, Scanner::PopIndent(), and Scanner::PushIndentTo() components

Threat Intelligence Overview

EPSS Score
0.3%
Top 79% exploitable
Prevalence
Medium
popular open-source C++ YAML parser embedded in many applications, not universal
Data Quality
5 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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise Micro 5.3 Not-Affected
SUSE Linux Enterprise Micro 5.4 Not-Affected
SUSE Linux Enterprise Micro 5.5 Not-Affected
SUSE Linux Enterprise Module for Basesystem 15 SP7 Not-Affected

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