Every CVE Search/ Get API key

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

9.1 CriticalFix available

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

0.63%Up 0.4 points since Jul 17, 2026
90%50%10%1%

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 CriticalCVSS: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 CriticalCVSS: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 CriticalCVSS: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 CriticalCVSS: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 CriticalCVSS: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 CriticalCVSS: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 CriticalCVSS: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 CriticalCVSS: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 CriticalCVSS: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)
  • 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)
  • 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

Affected packages
PackageAffectedFixed
perl-yaml-syck
Alpine:v3.24
before 1.47-r0
1.47-r0
perl-YAML
Azure Linux:3
through 1.30-2 None known
perl-YAML-Syck
Azure Linux:3
through 1.34-1 None known
perl-yaml-syck
Alpaquita:23
1.34-r2 up to 1.34-r5
1.34-r5
perl-yaml-syck
Alpaquita:25
1.34-r5 up to 1.34-r8
1.34-r8
perl-yaml-syck
Alpaquita:stream
1.34-r1 up to 1.47-r0
1.47-r0
libyaml-syck-perl
Debian:12
before 1.34-2+deb12u3, plus listed versions
1.34-21.34-2+deb12u11.34-2+deb12u2
1.34-2+deb12u3
libyaml-syck-perl
Debian:13
before 1.34-2+deb13u3, plus listed versions
1.34-21.34-2+deb13u11.34-2+deb13u2
1.34-2+deb13u3
libyaml-syck-perl
Debian: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-Syck
Mageia:10
From an advisory covering 4 CVEs
before 1.470.0-1.mga10
1.470.0-1.mga10
Show 10 moreShow less
Affected packages
PackageAffectedFixed
perl-YAML-Syck
Mageia:9
From an advisory covering 4 CVEs
before 1.470.0-1.mga9
1.470.0-1.mga9
libyaml-syck-perl
Ubuntu: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-perl
Ubuntu:Pro:18.04:LTS
All versions, plus listed versions
1.29-1build31.29-1ubuntu0.18.04.1~esm1
None known
libyaml-syck-perl
Ubuntu:Pro:20.04:LTS
All versions, plus listed versions
1.31-11.31-1build11.31-1ubuntu0.1~esm1
None known
libyaml-syck-perl
Ubuntu:Pro:22.04:LTS
All versions, plus listed versions
1.34-1build11.34-1build21.34-1ubuntu0.1~esm1
None known
libyaml-syck-perl
Ubuntu: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-perl
Ubuntu:26.10
All versions, plus listed versions
1.36-11.36-31.47-11.47-1build1
None known
libyaml-syck-perl
Ubuntu:26.04:LTS
All versions, plus listed versions
1.34-31.34-41.36-1
None known
perl-YAML-Syck
openSUSE:Tumbleweed
From an advisory covering 4 CVEs
before 1.470.0-1.1
1.470.0-1.1
perl-YAML-Syck
openSUSE:Leap 16.0
From an advisory covering 5 CVEs
before 1.470.0-bp160.1.1
1.470.0-bp160.1.1

History

History
RecordedChangedSources
affected
factsOSV
affected
first indexedCVE 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

Show 21 moreShow less
MoveEnter Open