Skip to main content

YAML::Syck CVE-2026-5089

| EUVDEUVD-2026-29543 HIGH
Buffer Underwrite ('Buffer Underflow') (CWE-124)
2026-05-12 CPANSec GHSA-jcwf-qrr5-xwq3
7.3
CVSS 3.1 · Vendor: CPANSec
View

Attack ChainAIDerived

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

  1. Access
    Identify target using YAML::Syck
  2. Delivery
    Craft base60 YAML payload
  3. Exploit
    Submit via network interface
  4. Execution
    Trigger base60 parser
  5. Persist
    Out-of-bounds read
  6. Impact
    Extract adjacent memory or crash application

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Buffer boundary checks
Exploitation Conditions

Exploitation requires the target application to parse YAML input through YAML::Syck with ImplicitTyping enabled (the default behavior) and process base60/sexagesimal numeric values. The vulnerable code path activates specifically when YAML content contains colon-separated numeric sequences that the parser interprets as timestamps or durations per YAML 1.0 specification (e.g., '1:30:45', '59:59'). Critically, the buffer underflow triggers on the leftmost segment of these values when no colon prefix exists. The vulnerability does NOT require special deployment configurations beyond default YAML::Syck installation. Attack vector is network-accessible (AV:N) if the application accepts YAML from remote sources such as API endpoints, configuration uploads, or data import features. No authentication (PR:N) or user interaction (UI:N) required-automated processing of malicious YAML triggers the flaw. The low attack complexity (AC:L) reflects that crafting triggering input requires only basic understanding of YAML syntax. Limiting factors: exploitation requires the application specifically uses YAML::Syck rather than alternative Perl YAML parsers (YAML::XS, YAML::PP, YAML::Tiny), and the out-of-bounds read is limited to one byte before the buffer, constraining information disclosure scope and making reliable exploitation platform-dependent based on heap layout.

Impact

Real-world risk is moderate despite the 7.3 CVSS score. The CVSS vector (AV:N/AC:L/PR:N/UI:N) indicates network-accessible, low-complexity exploitation without authentication, suggesting easy remote exploitation. However, multiple factors reduce practical risk: EPSS score of 0.01% (3rd percentile) indicates extremely low predicted exploitation probability based on historical data patterns. No CISA KEV listing confirms absence of observed active exploitation. The impact is limited to out-of-bounds read (not write), restricting attack outcomes to information disclosure of adjacent memory and potential denial-of-service through crashes rather than arbitrary code execution. The CVSS impact ratings (C:L/I:L/A:L) align with this assessment, though the Integrity impact may be overstated since buffer underflows typically don't enable direct data modification. Attack complexity is genuinely low-any application parsing untrusted YAML through YAML::Syck becomes vulnerable. The patch is straightforward (changes 'colon >= ptr' to 'colon > ptr' and adds boundary checks), suggesting the vendor assessed this as a significant but not critical security issue. Priority should focus on Perl applications that parse external YAML input, particularly web services and data processing pipelines. Applications parsing only trusted/internal YAML files face minimal risk.

Exploit ScenarioDerived

An attacker hosts a malicious YAML document or injects crafted YAML content into a system using YAML::Syck for parsing. The payload contains a base60 value without colons in the leftmost segment (e.g., 'timestamp: 42' where implicit typing treats it as sexagesimal). When the parser processes this value through the int#base60 or float#base60 handler, the colon pointer decrements past the buffer start, reading one byte before allocated memory. The attacker could leverage this to extract sensitive data from adjacent heap memory regions or cause application crashes through invalid memory access, particularly in tight loops processing multiple YAML documents. Public proof-of-concept exists via the vendor's test case in t/gh-132-base60-safety.t demonstrating the vulnerable code path.

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

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

Alert me

AnalysisAIv1 – May 14, 2026

Buffer underflow in YAML::Syck for Perl versions before 1.38 allows remote unauthenticated attackers to trigger out-of-bounds memory reads when parsing specially crafted base60 (sexagesimal) YAML values. The vulnerability affects both integer and floating-point base60 handlers in perl_syck.h, where processing leftmost colon-separated segments causes a pointer to decrement past allocated buffer boundaries. EPSS exploitation probability is minimal (0.01%, 3rd percentile) with no active exploitation or public weaponized exploit identified. Vendor-released patch available in version 1.38, confirmed by CPANSec and upstream commit.

RemediationAI

Upgrade YAML::Syck to version 1.38 or later immediately for all Perl installations processing YAML from untrusted sources. The fix is available through standard CPAN distribution channels using 'cpan YAML::Syck' or 'cpanm YAML::Syck' for cpanminus users. The patch commit (https://github.com/cpan-authors/YAML-Syck/commit/208a4d3bd1b5cdb4a791a6e3905bd6bd45e9d005.patch) changes the boundary check from 'colon >= ptr' to 'colon > ptr' preventing pointer underflow, and adds explicit handling for the no-colon case. For environments unable to upgrade immediately, implement input validation to reject or sanitize YAML containing base60/sexagesimal notation (colon-separated numeric values) before passing to YAML::Syck. Specifically, block or escape patterns matching timestamp/duration formats like '1:30:45' or simple ratios like '59:59'. Note this workaround breaks legitimate base60 value parsing and may cause application compatibility issues with YAML documents using YAML 1.0 timestamp types. Alternatively, migrate to YAML::XS or YAML::PP parsers which use different codebases unaffected by this specific flaw, though migration requires testing for behavioral differences in YAML parsing semantics. Monitor https://github.com/cpan-authors/YAML-Syck/pull/133 and http://www.openwall.com/lists/oss-security/2026/05/12/16 for additional vendor guidance.

Affected VersionsENISA

YAML::Syck 0 <1.38

Affected Packages

euvd yaml_syck fix: 1.38

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

YAML::Syck is a Perl binding for the Syck YAML parser library, implementing YAML 1.0 serialization. The vulnerability resides in the base60 (sexagesimal) number parsing logic within perl_syck.h, which handles YAML timestamps and duration values in colon-separated format (e.g., hours:minutes:seconds). The flaw occurs in both int#base60 and float#base60 type handlers when processing the leftmost segment of a value without colons. The condition 'while (colon >= ptr && *colon != ':')' allows the colon pointer to decrement to ptr-1 when no colon is found, then unconditionally dereferences this out-of-bounds pointer with '*colon == ':''. This represents CWE-124 (Buffer Underrun/'Buffer Underflow'), a memory safety issue where reading before the allocated buffer can expose adjacent memory contents or cause crashes. The affected CPE (cpe:2.3:a:toddr:yaml::syck) confirms this impacts the TODDR-maintained CPAN distribution of YAML::Syck.

Know when Yaml 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 (CPANSec) PRIMARY 7.3 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
SUSE HIGH
Red Hat 4.0 MEDIUM

Primary rating from Vendor (CPANSec).

CVSS VectorVendor: CPANSec

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

Lifecycle Timeline

3
CVSS changed
May 14, 2026 - 15:22 NVD
7.3 (HIGH)
CVE Published
May 12, 2026 - 16:14 nvd
HIGH 7.3
CVE Published
May 12, 2026 - 16:14 nvd
UNKNOWN (no severity yet)

DescriptionCVE.org

YAML::Syck versions before 1.38 for Perl has an out-of-bounds read.

The base60 (sexagesimal) parsing code in perl_syck.h has a buffer underflow bug in both int#base60 and float#base60 handlers. When processing the leftmost segment of a colon-separated value (e.g., the 1 in 1:30:45), the inner while loop can decrement a pointer past the start of the string buffer:

while ( colon >= ptr && *colon != ':' ) { colon--; } if ( *colon == ':' ) *colon = '\0'; // colon may be ptr-1 here

When no colon is found (final/leftmost segment), colon becomes ptr-1, and the subsequent *colon dereference reads one byte before the allocated buffer.

Executive ViewAI

Why It Matters

YAML::Syck for Perl versions before 1.38 contains a buffer underflow vulnerability that allows unauthenticated remote attackers to read arbitrary memory by sending malformed YAML input. Organizations using Perl applications that process untrusted YAML data face potential information disclosure; however, exploitation likelihood remains low at this time.

Business Impact: Medium
Compensating Controls

Apply vendor patch. If immediate patching is not feasible, restrict or disable YAML parsing of untrusted input sources and implement input validation/sanitization on base60 values until upgrade is completed.

Threat Intelligence Overview

EPSS Score
0.0%
Top 97% exploitable
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub VulDB

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 No
EPSS 0.0%
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
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
Medium
Technical Impact
Partial

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
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.

More in Yaml

View all
CVE-2023-2251 HIGH POC
7.5 Apr 24

Uncaught Exception in GitHub repository eemeli/yaml prior to 2.0.0-5. Rated high severity (CVSS 7.5), this vulnerability

CVE-2022-28948 HIGH POC
7.5 May 19

An issue in the Unmarshal function in Go-Yaml v3 causes the program to crash when attempting to deserialize invalid inpu

CVE-2026-57075 CRITICAL
9.1 Jul 16

Out-of-bounds read in the Perl module YAML::Syck before 1.47 lets a remote attacker leak adjacent process memory by feed

CVE-2026-4177 CRITICAL
9.1 Mar 16

A critical heap buffer overflow vulnerability exists in YAML::Syck through version 1.36 for Perl, allowing remote attack

CVE-2026-57076 HIGH
7.8 Jul 16

Heap use-after-free in YAML::Syck for Perl before version 1.47 lets a crafted YAML document corrupt parser memory when i

CVE-2026-57077 HIGH
7.7 Jul 16

Out-of-bounds heap read in YAML::Syck before 1.47 for Perl lets an attacker who controls a parsed YAML document trigger

CVE-2022-3064 HIGH
7.5 Dec 27

Parsing malicious or large YAML documents can consume excessive amounts of CPU or memory. Rated high severity (CVSS 7.5)

CVE-2025-11683 MEDIUM
6.5 Jul 17

Out-of-bounds memory read in YAML::Syck's bundled libsyck C library for Perl exposes any application calling Load() or L

CVE-2026-13713 MEDIUM
6.2 Jul 16

YAML::Syck before version 1.47 crashes the Perl interpreter when parsing a YAML document that redefines an anchor name,

CVE-2012-1152 MEDIUM
5.0 Sep 09

Multiple format string vulnerabilities in the error reporting functionality in the YAML::LibYAML (aka YAML-LibYAML and p

Vendor StatusVendor

SUSE

Severity: High

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