Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify target using YAML::Syck
-
DeliveryCraft base60 YAML payload
-
ExploitSubmit via network interface
-
ExecutionTrigger base60 parser
-
PersistOut-of-bounds read
-
ImpactExtract 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
Primary rating from Vendor (CPANSec).
CVSS VectorVendor: CPANSec
Lifecycle Timeline
3DescriptionCVE.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
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.
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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
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.
Uncaught Exception in GitHub repository eemeli/yaml prior to 2.0.0-5. Rated high severity (CVSS 7.5), this vulnerability
An issue in the Unmarshal function in Go-Yaml v3 causes the program to crash when attempting to deserialize invalid inpu
Out-of-bounds read in the Perl module YAML::Syck before 1.47 lets a remote attacker leak adjacent process memory by feed
A critical heap buffer overflow vulnerability exists in YAML::Syck through version 1.36 for Perl, allowing remote attack
Heap use-after-free in YAML::Syck for Perl before version 1.47 lets a crafted YAML document corrupt parser memory when i
Out-of-bounds heap read in YAML::Syck before 1.47 for Perl lets an attacker who controls a parsed YAML document trigger
Parsing malicious or large YAML documents can consume excessive amounts of CPU or memory. Rated high severity (CVSS 7.5)
Out-of-bounds memory read in YAML::Syck's bundled libsyck C library for Perl exposes any application calling Load() or L
YAML::Syck before version 1.47 crashes the Perl interpreter when parsing a YAML document that redefines an anchor name,
Multiple format string vulnerabilities in the error reporting functionality in the YAML::LibYAML (aka YAML-LibYAML and p
EUVD-2026-29543
GHSA-jcwf-qrr5-xwq3
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB