Description
YAML::Syck versions before 1.47 for Perl allow an out-of-bounds read via a signed-char lookup-table index in syck_base64dec.

The base64 decoder in the bundled libsyck indexes the 256-entry static table b64_xtable with a signed char, so any !!binary byte >= 0x80 sign-extends to a negative index and reads before the table. The decoder receives the raw bytes of any !!binary node, a standard YAML type not gated by $LoadBlessed or $LoadCode, so it is reached on the default Load path.

Any caller that runs Load or LoadFile on an untrusted document containing a !!binary scalar with a high-bit byte triggers the read, and the value read can surface in the decoded result.
Published: 2026-07-16
Score: 9.1 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The flaw lies in YAML::Syck’s base64 decoder, which uses a signed char to index a static 256‑entry table (b64_xtable). When a !!binary scalar contains any byte with the high bit set, the signed char sign‑extends to a negative value, causing the decoder to read memory locations before the table. The data read from these out‑of‑bounds addresses then appears in the decoded result, allowing an attacker to exfiltrate arbitrary memory contents from the process. This vulnerability is a classic case of CWE‑125: Out‑of‑Bounds Read. The likely attack vector is delivering a crafted YAML document containing a !!binary scalar with high‑bit bytes.

Affected Systems

Perl modules that import YAML::Syck version 1.46 or earlier, as released by TODDR, are affected. Any Perl application that calls Load or LoadFile on untrusted YAML input will hit the base64 decoder on the default Load path, as the !!binary type is not gated by $LoadBlessed or $LoadCode. Thus the vulnerability applies across all Perl programs that rely on this module to parse external YAML.

Risk and Exploitability

The CVSS score of 9.1 indicates a high‑severity information disclosure. The EPSS score of less than 1% suggests that exploit activity is presently rare, and the vulnerability is not listed in the CISA KEV catalog. Attackers can exploit the flaw simply by delivering a crafted YAML document containing a !!binary scalar with one or more high‑bit bytes; no special privileges or pre‑existing access are required. Based on the description, it is inferred that the exploit can read arbitrary memory content, and the resulting information disclosure can vary widely depending on the process.

Generated by OpenCVE AI on August 3, 2026 at 02:53 UTC.

Remediation

Vendor Solution

Upgrade to YAML-Syck 1.47 or later.


OpenCVE Recommended Actions

  • Upgrade to YAML::Syck 1.47 or later, using CPAN or applying the patch referenced in the advisory.
  • If an immediate upgrade is not possible, configure your application to reject or sanitize inputs that contain !!binary scalars before parsing, thereby preventing the vulnerable base64 decoder from being invoked.
  • As a longer‑term mitigation, consider switching to a more modern and actively maintained YAML parser, such as YAML::PP or YAML::Tiny, which do not include the vulnerable decoder.

Generated by OpenCVE AI on August 3, 2026 at 02:53 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 18 Jul 2026 12:15:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

threat_severity

Moderate


Fri, 17 Jul 2026 13:30:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 9.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H'}

ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Thu, 16 Jul 2026 23:45:00 +0000

Type Values Removed Values Added
First Time appeared Toddr
Toddr yaml::syck
Vendors & Products Toddr
Toddr yaml::syck

Thu, 16 Jul 2026 22:15:00 +0000

Type Values Removed Values Added
Description YAML::Syck versions before 1.47 for Perl allow an out-of-bounds read via a signed-char lookup-table index in syck_base64dec. The base64 decoder in the bundled libsyck indexes the 256-entry static table b64_xtable with a signed char, so any !!binary byte >= 0x80 sign-extends to a negative index and reads before the table. The decoder receives the raw bytes of any !!binary node, a standard YAML type not gated by $LoadBlessed or $LoadCode, so it is reached on the default Load path. Any caller that runs Load or LoadFile on an untrusted document containing a !!binary scalar with a high-bit byte triggers the read, and the value read can surface in the decoded result.
Title YAML::Syck versions before 1.47 for Perl allow an out-of-bounds read via a signed-char lookup-table index in syck_base64dec
Weaknesses CWE-125
References

Subscriptions

Toddr Yaml::syck
cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-07-17T13:08:37.487Z

Reserved: 2026-06-23T18:02:32.994Z

Link: CVE-2026-57075

cve-icon Vulnrichment

Updated: 2026-07-17T03:02:26.445Z

cve-icon NVD

No data.

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-07-16T21:39:22Z

Links: CVE-2026-57075 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-03T03:00:04Z

Weaknesses