CVE-2026-4177: Heap-Based Buffer Overflow and Memory Corruption Suite in YAML::Syck
Vulnerability ID: CVE-2026-4177
CVSS Score: 9.1
Published: 2026-03-16
CVE-2026-4177 represents a critical suite of memory mismanagement vulnerabilities in the YAML::Syck Perl module, affecting versions up to and including 1.36. The core issue is a high-severity heap-based buffer overflow triggered during the emission of YAML tags for Perl objects with exceptionally long class names. Accompanying this primary vulnerability are three secondary flaws: an out-of-bounds read in the Base64 decoder, shared data corruption in the parser, and a memory leak. These vulnerabilities reside in the underlying C library implementation, exposing applications that parse or emit untrusted YAML data to denial of service, memory corruption, and potential arbitrary code execution.
TL;DR
A critical heap buffer overflow exists in YAML::Syck <= 1.36 due to a fixed 512-byte buffer in the YAML emitter. Upgrading to version 1.37 resolves this overflow along with three other memory safety bugs in the C-layer implementation.
⚠️ Exploit Status: POC
Technical Details
- CWE ID: CWE-122
- Attack Vector: Network
- CVSS Score: 9.1
- EPSS Score: 0.00019 (4.97th Percentile)
- Impact: Remote Code Execution, Denial of Service
- Exploit Status: Proof of Concept (PoC) Available
- KEV Status: Not Listed
Affected Systems
- YAML::Syck Perl module versions <= 1.36
- Any application or service relying on vulnerable versions of YAML::Syck for data serialization
-
YAML::Syck: <= 1.36 (Fixed in:
1.37)
Code Analysis
Commit: e8844a3
Official fix addressing heap buffer overflow, OOB read, data corruption, and memory leak in C-layer.
Exploit Details
- GitHub (Regression Test): The t/tag-overflow.t script included in the fix commit serves as a reliable Proof-of-Concept to trigger the vulnerability.
Mitigation Strategies
- Upgrade YAML::Syck to version 1.37 or later.
- Implement strict input validation on data parsed from or serialized to YAML format.
- Ensure untrusted data cannot influence the class names of objects passed to Dump().
- Deploy system-level memory protections (ASLR, DEP) to complicate exploit reliability.
Remediation Steps:
- Identify all projects and dependencies utilizing the YAML::Syck module.
- Update the dependency configuration to require YAML::Syck >= 1.37.
- Recompile the Perl XS extensions to ensure the C-layer fixes are fully applied.
- Execute the updated regression tests (specifically t/tag-overflow.t) to verify the patch status.
- Monitor application crash logs for persistent SIGSEGV events indicating attempted exploitation.
References
Read the full report for CVE-2026-4177 on our website for more details including interactive diagrams and full exploit analysis.
Top comments (0)