CVE-2026-57075
YAML::Syck versions before 1.47 for Perl allow an out-of-bounds read via a signed-char lookup-table index in syck_base64dec
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
9.1
YAML::Syck versions before 1.47 for Perl allow an out-of-bounds read via a signed-char lookup-table index in syck_base64dec
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.
- Record
CVE-2026-57075- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H - Weakness
- CWE-125
- Updated
- 2026-11-02
EUVDEUVD-2026-45054
9.1
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.
- Record
EUVD-2026-45054- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-fwh5-hwhp-qgp4
9.1
YAML::Syck versions before 1.47 for Perl allow an out-of-bounds read via a signed-char lookup...
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.
- Record
GHSA-fwh5-hwhp-qgp4- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H - Weakness
- CWE-125
- Updated
- 2026-11-02
NVD
9.1
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.
- Record
CVE-2026-57075- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H - Weakness
- CWE-125
- Updated
- 2026-11-02
OSVALPINE-CVE-2026-57075
9.1
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.
- Record
ALPINE-CVE-2026-57075- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H - Updated
- 2026-11-02
OSVBELL-CVE-2026-57075
9.1
- Record
BELL-CVE-2026-57075- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H - Updated
- 2026-11-02
Show 9 moreShow less
OSV
9.1
YAML::Syck versions before 1.47 for Perl allow an out-of-bounds read via a signed-char lookup-table index in syck_base64dec
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.
- Record
CVE-2026-57075- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H - Weakness
- CWE-125
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-57075
9.1
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.
- Record
DEBIAN-CVE-2026-57075- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-57075
9.1
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.
- Record
UBUNTU-CVE-2026-57075- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H - Updated
- 2026-11-02
OSVAZL-109517 No score
CVE-2026-57075 affecting package perl-YAML 1.30-2
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.
- Record
AZL-109517- Updated
- 2026-11-02
OSVAZL-92913 No score
CVE-2026-57075 affecting package perl-YAML-Syck 1.34-1
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.
- Record
AZL-92913- Updated
- 2026-11-05
OSVMGASA-2026-0367 No score
Updated perl-YAML-Syck packages fix security vulnerabilities
YAML::Syck versions before 1.47 for Perl allow a use-after-free and double-free via an anchor node freed while still on the parser value stack YAML::Syck versions before 1.47 for Perl allow an out-of-bounds read via a signed-char lookup-table index in syck_base64dec YAML::Syck versions before 1.47 for Perl allow a heap use-after-free via an anchor name reused as an anchors-table key in syck_hdlr_add_anchor YAML::Syck versions before 1.47 for Perl allow an out-of-bounds read via an unbounded newline scan in newline_len
- Record
MGASA-2026-0367- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:11299-1 No score
perl-YAML-Syck-1.470.0-1.1 on GA media
These are all security issues fixed in the perl-YAML-Syck-1.470.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11299-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:21452-1 No score
Security update for perl-YAML-Syck
This update for perl-YAML-Syck fixes the following issues:
Changes in perl-YAML-Syck:
-
updated to 1.470.0 (1.47) [Security]
- Fix four libsyck memory-safety CVEs reachable from the default
YAML::Syck::Load() path on untrusted input with no special flags
(reported by Paul Johnson via CPANSec, PR #213):
- CVE-2026-57075 (CWE-125): out-of-bounds read in the base64 decoder caused by signed-char indexing of the decode table on !!binary input bsc#1271632
- CVE-2026-57076 (CWE-416): use-after-free of an anchor key string shared between the node and the anchors table bsc#1271633
- CVE-2026-57077 (CWE-125): one-byte out-of-bounds read in the lexer newline scan during block-scalar parsing (incomplete-fix follow-on to CVE-2025-11683) bsc#1271634
- CVE-2026-13713 (CWE-416/CWE-415): use-after-free / double-free of an anchor node on anchor redefinition, a remote-crash DoS from a 7-byte input bsc#1271631
- Harden syck_base64dec() to bounds-check each read so it cannot run past a non-NUL-terminated input buffer (defense-in-depth for callers passing raw buffers; PR #213) [Bug Fixes]
- Fix: enforce $MaxDepth on Load to prevent C-stack exhaustion from deeply nested YAML/JSON input; YAML::Syck and JSON::Syck Load now default to 512, matching Dump (PR #204)
- Fix: emit YAML canonical forms (.nan, .inf, -.inf) for NaN/Inf values in Dump so they roundtrip with ImplicitTyping instead of reloading as plain strings (PR #201) [Maintenance]
- CI: add an AddressSanitizer job that builds the XS with -fsanitize=address and runs the suite plus the CVE trigger inputs to catch libsyck memory-safety defects; de-pin the libasan version so it tracks the runner's GCC (PR #213)
- Fix four libsyck memory-safety CVEs reachable from the default
YAML::Syck::Load() path on untrusted input with no special flags
(reported by Paul Johnson via CPANSec, PR #213):
-
updated to 1.460.0 (1.46) [Bug Fixes]
- Fix: preserve string nature of numeric-looking values in Dump; pure strings (POK only, no IOK/NOK) are now quoted to maintain roundtrip fidelity (GH #199, PR #200)
- Fix: accept trailing commas in flow sequences and mappings ([a, b,] and {a: 1,}), valid per YAML 1.0/1.1/1.2 spec (GH #195, PR #196)
[Maintenance]
- CI: upgrade install-with-cpm to v2 for compatibility with Perl versions prior to 5.24 in perldocker containers (GH #197, PR #198)
- Clean up MANIFEST.SKIP: add #!include_default, remove redundant entries, exclude .claude/ from distribution
- Record
openSUSE-SU-2026:21452-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:21497-1 No score
Security update for perl-YAML-Syck
This update for perl-YAML-Syck fixes the following issues:
Changes in perl-YAML-Syck:
-
updated to 1.470.0 (1.47) [Security]
- Fix four libsyck memory-safety CVEs reachable from the default
YAML::Syck::Load() path on untrusted input with no special flags
(reported by Paul Johnson via CPANSec, PR #213):
- CVE-2026-57075 (CWE-125): out-of-bounds read in the base64 decoder caused by signed-char indexing of the decode table on !!binary input bsc#1271632
- CVE-2026-57076 (CWE-416): use-after-free of an anchor key string shared between the node and the anchors table bsc#1271633
- CVE-2026-57077 (CWE-125): one-byte out-of-bounds read in the lexer newline scan during block-scalar parsing (incomplete-fix follow-on to CVE-2025-11683) bsc#1271634
- CVE-2026-13713 (CWE-416/CWE-415): use-after-free / double-free of an anchor node on anchor redefinition, a remote-crash DoS from a 7-byte input bsc#1271631
- Harden syck_base64dec() to bounds-check each read so it cannot run past a non-NUL-terminated input buffer (defense-in-depth for callers passing raw buffers; PR #213) [Bug Fixes]
- Fix: enforce $MaxDepth on Load to prevent C-stack exhaustion from deeply nested YAML/JSON input; YAML::Syck and JSON::Syck Load now default to 512, matching Dump (PR #204)
- Fix: emit YAML canonical forms (.nan, .inf, -.inf) for NaN/Inf values in Dump so they roundtrip with ImplicitTyping instead of reloading as plain strings (PR #201) [Maintenance]
- CI: add an AddressSanitizer job that builds the XS with -fsanitize=address and runs the suite plus the CVE trigger inputs to catch libsyck memory-safety defects; de-pin the libasan version so it tracks the runner's GCC (PR #213)
- Fix four libsyck memory-safety CVEs reachable from the default
YAML::Syck::Load() path on untrusted input with no special flags
(reported by Paul Johnson via CPANSec, PR #213):
-
updated to 1.460.0 (1.46) [Bug Fixes]
- Fix: preserve string nature of numeric-looking values in Dump; pure strings (POK only, no IOK/NOK) are now quoted to maintain roundtrip fidelity (GH #199, PR #200)
- Fix: accept trailing commas in flow sequences and mappings ([a, b,] and {a: 1,}), valid per YAML 1.0/1.1/1.2 spec (GH #195, PR #196)
[Maintenance]
- CI: upgrade install-with-cpm to v2 for compatibility with Perl versions prior to 5.24 in perldocker containers (GH #197, PR #198)
- Clean up MANIFEST.SKIP: add #!include_default, remove redundant entries, exclude .claude/ from distribution
- Record
openSUSE-SU-2026:21497-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
perl-yaml-syckAlpine:v3.24 |
before 1.47-r0 | 1.47-r0 |
perl-YAMLAzure Linux:3 |
through 1.30-2 | None known |
perl-YAML-SyckAzure Linux:3 |
through 1.34-1 | None known |
perl-yaml-syckAlpaquita:23 |
1.34-r2 up to 1.34-r5 | 1.34-r5 |
perl-yaml-syckAlpaquita:25 |
1.34-r5 up to 1.34-r8 | 1.34-r8 |
perl-yaml-syckAlpaquita:stream |
1.34-r1 up to 1.47-r0 | 1.47-r0 |
libyaml-syck-perlDebian:12 |
before 1.34-2+deb12u3, plus listed versions 1.34-21.34-2+deb12u11.34-2+deb12u2 |
1.34-2+deb12u3 |
libyaml-syck-perlDebian:13 |
before 1.34-2+deb13u3, plus listed versions 1.34-21.34-2+deb13u11.34-2+deb13u2 |
1.34-2+deb13u3 |
libyaml-syck-perlDebian:14 |
before 1.47-1, plus listed versions 1.34-21.34-31.34-41.36-11.36-21.36-3 |
1.47-1 |
perl-YAML-SyckMageia:10 From an advisory covering 4 CVEs |
before 1.470.0-1.mga10 | 1.470.0-1.mga10 |
Show 10 moreShow less
| Package | Affected | Fixed |
|---|---|---|
perl-YAML-SyckMageia:9 From an advisory covering 4 CVEs |
before 1.470.0-1.mga9 | 1.470.0-1.mga9 |
libyaml-syck-perlUbuntu:Pro:16.04:LTS |
All versions, plus listed versions 1.27-2build21.29-11.29-1build11.29-1ubuntu0.16.04.1~esm1 |
None known |
libyaml-syck-perlUbuntu:Pro:18.04:LTS |
All versions, plus listed versions 1.29-1build31.29-1ubuntu0.18.04.1~esm1 |
None known |
libyaml-syck-perlUbuntu:Pro:20.04:LTS |
All versions, plus listed versions 1.31-11.31-1build11.31-1ubuntu0.1~esm1 |
None known |
libyaml-syck-perlUbuntu:Pro:22.04:LTS |
All versions, plus listed versions 1.34-1build11.34-1build21.34-1ubuntu0.1~esm1 |
None known |
libyaml-syck-perlUbuntu:Pro:24.04:LTS |
All versions, plus listed versions 1.34-21.34-2build11.34-2build21.34-2build31.34-2ubuntu0.24.04.1~esm1 |
None known |
libyaml-syck-perlUbuntu:26.10 |
All versions, plus listed versions 1.36-11.36-31.47-11.47-1build1 |
None known |
libyaml-syck-perlUbuntu:26.04:LTS |
All versions, plus listed versions 1.34-31.34-41.36-1 |
None known |
perl-YAML-SyckopenSUSE:Tumbleweed From an advisory covering 4 CVEs |
before 1.470.0-1.1 | 1.470.0-1.1 |
perl-YAML-SyckopenSUSE:Leap 16.0 From an advisory covering 5 CVEs |
before 1.470.0-bp160.1.1 | 1.470.0-bp160.1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| facts | OSV | |
| affected | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-57075 is a critical vulnerability (CVSS 9.1) in Toddr Yaml::syck, published July 16, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.63%, the 50th percentile. Fixed in perl-yaml-syck 1.47-r0.
References
metacpan.org/release/TODDR/YAML-Syck-1.47/changes
github.com/toddr/YAML-Syck/commit/44c90a109ec3215ee7ce747bd11209835e123d8b.patch
openwall.com/lists/oss-security/2026/07/17/2
nvd.nist.gov/vuln/detail/CVE-2026-57075
github.com/advisories/GHSA-fwh5-hwhp-qgp4
security.alpinelinux.org/vuln/CVE-2026-57075
Show 21 moreShow less
docs.bell-sw.com/security/cves/CVE-2026-57075
cpan.org/modules
github.com/CVEProject/cvelistV5/tree/main/cves/2026/57xxx/CVE-2026-57075.json
github.com/toddr/YAML-Syck
security-tracker.debian.org/tracker/CVE-2026-57075
advisories.mageia.org/MGASA-2026-0367.html
bugs.mageia.org/show_bug.cgi?id=35949
openwall.com/lists/oss-security/2026/07/17/1
openwall.com/lists/oss-security/2026/07/17/3
openwall.com/lists/oss-security/2026/07/17/4
ubuntu.com/security/CVE-2026-57075
cve.org/CVERecord?id=CVE-2026-57075
suse.com/security/cve/CVE-2026-13713
suse.com/security/cve/CVE-2026-57075
suse.com/security/cve/CVE-2026-57076
suse.com/security/cve/CVE-2026-57077
bugzilla.suse.com/1271631
bugzilla.suse.com/1271632
bugzilla.suse.com/1271633
bugzilla.suse.com/1271634
suse.com/security/cve/CVE-2025-11683