CVE-2026-4177
YAML::Syck versions through 1.36 for Perl has several potential security vulnerabilities including a high-severity heap buffer overflow in the YAML emitter
YAML::Syck versions through 1.36 for Perl has several potential security vulnerabilities including a high-severity heap buffer overflow in the YAML emitter.
The heap overflow occurs when class names exceed the initial 512-byte allocation.
The base64 decoder could read past the buffer end on trailing newlines.
strtok mutated n->type_id in place, corrupting shared node data.
A memory leak occurred in syck_hdlr_add_anchor when a node already had an anchor. The incoming anchor string 'a' was leaked on early return.
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 through 1.36 for Perl has several potential security vulnerabilities including a high-severity heap buffer overflow in the YAML emitter
YAML::Syck versions through 1.36 for Perl has several potential security vulnerabilities including a high-severity heap buffer overflow in the YAML emitter.
The heap overflow occurs when class names exceed the initial 512-byte allocation.
The base64 decoder could read past the buffer end on trailing newlines.
strtok mutated n->type_id in place, corrupting shared node data.
A memory leak occurred in syck_hdlr_add_anchor when a node already had an anchor. The incoming anchor string 'a' was leaked on early return.
- Record
CVE-2026-4177- 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 - CVSS 3.1
- 7.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L - Weakness
- CWE-122, CWE-120
- Updated
- 2026-11-02
EUVDEUVD-2026-12523
9.1
YAML::Syck versions through 1.36 for Perl has several potential security vulnerabilities including a high-severity heap buffer overflow in the YAML emitter.
The heap overflow occurs when class names exceed the initial 512-byte allocation.
The base64 decoder could read past the buffer end on trailing newlines.
strtok mutated n->type_id in place, corrupting shared node data.
A memory leak occurred in syck_hdlr_add_anchor when a node already had an anchor. The incoming anchor string 'a' was leaked on early return.
- Record
EUVD-2026-12523- 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-72r6-p2x3-g9gj
9.1
YAML::Syck versions through 1.36 for Perl has several potential security vulnerabilities...
YAML::Syck versions through 1.36 for Perl has several potential security vulnerabilities including a high-severity heap buffer overflow in the YAML emitter.
The heap overflow occurs when class names exceed the initial 512-byte allocation.
The base64 decoder could read past the buffer end on trailing newlines.
strtok mutated n->type_id in place, corrupting shared node data.
A memory leak occurred in syck_hdlr_add_anchor when a node already had an anchor. The incoming anchor string 'a' was leaked on early return.
- Record
GHSA-72r6-p2x3-g9gj- 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-120, CWE-122
- Updated
- 2026-11-02
NVD
9.1
YAML::Syck versions through 1.36 for Perl has several potential security vulnerabilities including a high-severity heap buffer overflow in the YAML emitter.
The heap overflow occurs when class names exceed the initial 512-byte allocation.
The base64 decoder could read past the buffer end on trailing newlines.
strtok mutated n->type_id in place, corrupting shared node data.
A memory leak occurred in syck_hdlr_add_anchor when a node already had an anchor. The incoming anchor string 'a' was leaked on early return.
- Record
CVE-2026-4177- 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 - CVSS 3.1
- 7.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L - Weakness
- CWE-122, CWE-120
- Updated
- 2026-11-02
OSVALPINE-CVE-2026-4177
9.1
YAML::Syck versions through 1.36 for Perl has several potential security vulnerabilities including a high-severity heap buffer overflow in the YAML emitter.
The heap overflow occurs when class names exceed the initial 512-byte allocation.
The base64 decoder could read past the buffer end on trailing newlines.
strtok mutated n->type_id in place, corrupting shared node data.
A memory leak occurred in syck_hdlr_add_anchor when a node already had an anchor. The incoming anchor string 'a' was leaked on early return.
- Record
ALPINE-CVE-2026-4177- 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-4177
9.1
- Record
BELL-CVE-2026-4177- 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 12 moreShow less
OSV
9.1
YAML::Syck versions through 1.36 for Perl has several potential security vulnerabilities including a high-severity heap buffer overflow in the YAML emitter
YAML::Syck versions through 1.36 for Perl has several potential security vulnerabilities including a high-severity heap buffer overflow in the YAML emitter.
The heap overflow occurs when class names exceed the initial 512-byte allocation.
The base64 decoder could read past the buffer end on trailing newlines.
strtok mutated n->type_id in place, corrupting shared node data.
A memory leak occurred in syck_hdlr_add_anchor when a node already had an anchor. The incoming anchor string 'a' was leaked on early return.
- Record
CVE-2026-4177- 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-122
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-4177
9.1
YAML::Syck versions through 1.36 for Perl has several potential security vulnerabilities including a high-severity heap buffer overflow in the YAML emitter. The heap overflow occurs when class names exceed the initial 512-byte allocation. The base64 decoder could read past the buffer end on trailing newlines. strtok mutated n->type_id in place, corrupting shared node data. A memory leak occurred in syck_hdlr_add_anchor when a node already had an anchor. The incoming anchor string 'a' was leaked on early return.
- Record
DEBIAN-CVE-2026-4177- 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
OSVRHSA-2026:6470
7.3
Red Hat Security Advisory: perl-YAML-Syck security update
- Record
RHSA-2026:6470- CVSS 3.1
- 7.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L - Updated
- 2026-11-02
OSVRHSA-2026:8311
7.3
Red Hat Security Advisory: perl-YAML-Syck security update
- Record
RHSA-2026:8311- CVSS 3.1
- 7.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L - Updated
- 2026-11-02
OSVRLSA-2026:6470
7.3
Important: perl-YAML-Syck security update
This module provides a Perl interface to the libsyck data serialization library. It exports the Dump and Load functions for converting Perl data structures to YAML strings, and the other way around.
Security Fix(es):
- perl-YAML-Syck: YAML::Syck versions through 1.36 for Perl has several potential security vulnerabilities including a high-severity heap buffer overflow in the YAML emitter (CVE-2026-4177)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
RLSA-2026:6470- CVSS 3.1
- 7.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-4177
9.1
YAML::Syck versions through 1.36 for Perl has several potential security vulnerabilities including a high-severity heap buffer overflow in the YAML emitter. The heap overflow occurs when class names exceed the initial 512-byte allocation. The base64 decoder could read past the buffer end on trailing newlines. strtok mutated n->type_id in place, corrupting shared node data. A memory leak occurred in syck_hdlr_add_anchor when a node already had an anchor. The incoming anchor string 'a' was leaked on early return.
- Record
UBUNTU-CVE-2026-4177- 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 - CVSS 3.1
- 7.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L - Updated
- 2026-11-02
OSVALSA-2026:6470 No score
Important: perl-YAML-Syck security update
This module provides a Perl interface to the libsyck data serialization library. It exports the Dump and Load functions for converting Perl data structures to YAML strings, and the other way around.
Security Fix(es):
- perl-YAML-Syck: YAML::Syck versions through 1.36 for Perl has several potential security vulnerabilities including a high-severity heap buffer overflow in the YAML emitter (CVE-2026-4177)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
ALSA-2026:6470- Updated
- 2026-11-02
OSVAZL-109508 No score
CVE-2026-4177 affecting package perl-YAML 1.30-2
YAML::Syck versions through 1.36 for Perl has several potential security vulnerabilities including a high-severity heap buffer overflow in the YAML emitter.
The heap overflow occurs when class names exceed the initial 512-byte allocation.
The base64 decoder could read past the buffer end on trailing newlines.
strtok mutated n->type_id in place, corrupting shared node data.
A memory leak occurred in syck_hdlr_add_anchor when a node already had an anchor. The incoming anchor string 'a' was leaked on early return.
- Record
AZL-109508- Updated
- 2026-11-02
OSVAZL-79977 No score
CVE-2026-4177 affecting package perl-YAML-Syck 1.34-1
YAML::Syck versions through 1.36 for Perl has several potential security vulnerabilities including a high-severity heap buffer overflow in the YAML emitter.
The heap overflow occurs when class names exceed the initial 512-byte allocation.
The base64 decoder could read past the buffer end on trailing newlines.
strtok mutated n->type_id in place, corrupting shared node data.
A memory leak occurred in syck_hdlr_add_anchor when a node already had an anchor. The incoming anchor string 'a' was leaked on early return.
- Record
AZL-79977- Updated
- 2026-11-05
OSVMGASA-2026-0058 No score
Updated perl-YAML-Syck packages fix security vulnerabilities
YAML::Syck versions through 1.36 for Perl has several potential security vulnerabilities including a high-severity heap buffer overflow in the YAML emitter. (CVE-2026-4177)
- Record
MGASA-2026-0058- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:10551-1 No score
perl-YAML-Syck-1.440.0-1.1 on GA media
These are all security issues fixed in the perl-YAML-Syck-1.440.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:10551-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:20771-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.450.0 (1.45) [Bug Fixes]
- Fix: use syck_base64_free() to fix Windows "Free to wrong pool" crash in base64 encode/decode buffers; also plugs a memory leak (PR #189)
- Fix: clear type tag on blessed scalar alias early-return so the stale tag no longer leaks onto the next emitted item (GH #193, PR #194)
- Fix: negative float#base60 values produce wrong results; strip sign before accumulating and avoid negative zero for portable stringification (PR #191)
- Fix: prevent memory leaks when Load/LoadJSON croak on parse errors (PR #192) [Maintenance]
- Test: add coverage for SortKeys and JSON MaxDepth (PR #188)
- Test: add error handling coverage for LoadFile/DumpFile (PR #190)
- Update README
-
updated to 1.440.0 (1.44) [Bug Fixes]
- Fix: positive hex and octal values parsed as 0 with ImplicitTyping (PR #187)
- Fix: resolve uintptr_t redefinition error on Win64 MinGW (PR #186) 1.43 Apr 01 2026 [Bug Fixes]
- Fix: prevent resource leaks on croak/early-return paths in Dump (PR #161)
- Fix: prevent output SV leaks on croak in Dump/DumpFile callers (PR #163)
- Fix: Load() in list context returns empty list for empty/undef input; also applies to LoadBytes and LoadUTF8 (GH #164, PR #165)
- Fix: DumpCode serializes prototype string instead of code body (PR #168)
- Fix: memory leak in !perl/scalar Load — newRV_inc should be newRV_noinc (PR #170)
- Fix: add pTHX_ to SAVEDESTRUCTOR_X callback for threaded Perl (GH #175, PR #176)
- Fix: add TODO guard for eval_pv leak on Perl < 5.14 (GH #179, PR #180)
- Fix: negative hex and octal values parsed as 0 with ImplicitTyping (PR #183)
- Fix: negative int#base60 values produce unsigned wraparound (PR #185) [Improvements]
- Modernize META_MERGE for CPANTS compliance (PR #162)
- Fix hash table size handling and remove compile warnings in syck_st (PR #174) [Maintenance]
- Restore TODO guard for Dump code leak test on Perl < 5.26 (PR #167)
- Resolve 2010 TODO in perl_json_postprocess with test coverage (PR #166)
- CI: upgrade actions to resolve Node.js 20 deprecation warnings (PR #177) 1.42 Mar 27 2026 [Bug Fixes]
- Fix: replace strtok() with strpbrk() and fix sign-compare warnings in perl_syck.h (PR #145)
- Fix: terminate plain scalars at document boundaries --- and ... (PR #150)
- Fix: skip %TAG and %YAML directives in document header (PR #151)
- Fix: plug SV leak when eval_pv croaks on bad perl/code blocks (PR #153)
- Fix: allow non-specific tag '!' before block scalars (GH #27, PR #102)
- Fix: remove spurious %type <nodeId> for indent_open in gram.y (GH #157, PR #158)
- Fix: use modern bison %define api.prefix directive (GH #159, PR #160) [Improvements]
- Implement YAML merge key (<<) support (PR #149) [Maintenance]
- Remove dead Perl 5.6/5.8 version guards from test files (PR #146)
- Add YAML 1.0 spec compliance audit and coverage tests (PR #148)
- Add comprehensive round-trip tests for YAML 1.0 spec features (PR #152)
- Remove unneeded TODO in t/json-basic.t (PR #154)
- Add regex Dump/Load/round-trip tests to perl tag scheme (PR #155)
- Do not require a .y file to build YAML::Syck; add brew support for bison
- Don't ship docs/ directory in tarball 1.41 Mar 22 2026 [Bug Fixes]
- Fix float parsing on -Dusequadmath perls: use Perl's Atof() instead of strtod() so that floats like -3.14 are not corrupted by double-precision rounding artifacts (GH #140, PR #141) 1.39 Mar 21 2026 [Bug Fixes]
- Fix t/yaml-implicit-typing.t failure with -Duselongdouble perls (GH #138, PR #139) 1.38 Mar 20 2026 [Bug Fixes]
- Fix: escape solidus (/) as / in JSON::Syck::Dump…
- Record
openSUSE-SU-2026:20771-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
perl-yaml-syckAlpine:v3.24 |
before 1.45-r0 | 1.45-r0 |
perl-YAML-SyckAlmaLinux:8 |
before 1.30-6.el8_10 | 1.30-6.el8_10 |
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-r3 | 1.34-r3 |
perl-yaml-syckAlpaquita:25 |
1.34-r5 up to 1.34-r6 | 1.34-r6 |
perl-yaml-syckAlpaquita:stream |
1.34-r1 up to 1.37-r0 | 1.37-r0 |
libyaml-syck-perlDebian:12 |
before 1.34-2+deb12u2, plus listed versions 1.34-21.34-2+deb12u1 |
1.34-2+deb12u2 |
libyaml-syck-perlDebian:13 |
before 1.34-2+deb13u2, plus listed versions 1.34-21.34-2+deb13u1 |
1.34-2+deb13u2 |
libyaml-syck-perlDebian:14 |
before 1.36-2, plus listed versions 1.34-21.34-31.34-41.36-1 |
1.36-2 |
Show 16 moreShow less
| Package | Affected | Fixed |
|---|---|---|
perl-YAML-SyckMageia:9 |
before 1.340.0-4.1.mga9 | 1.340.0-4.1.mga9 |
perl-YAML-SyckRed Hat:enterprise_linux:8::crb |
before 0:1.30-6.el8_10 | 0:1.30-6.el8_10 |
perl-YAML-Syck-debuginfoRed Hat:enterprise_linux:8::crb |
before 0:1.30-6.el8_10 | 0:1.30-6.el8_10 |
perl-YAML-Syck-debugsourceRed Hat:enterprise_linux:8::crb |
before 0:1.30-6.el8_10 | 0:1.30-6.el8_10 |
perl-YAML-SyckRed Hat:rhel_els:7 |
before 0:1.27-3.el7_9.1 | 0:1.27-3.el7_9.1 |
perl-YAML-Syck-debuginfoRed Hat:rhel_els:7 |
before 0:1.27-3.el7_9.1 | 0:1.27-3.el7_9.1 |
perl-YAML-SyckRocky Linux:8 |
before 0:1.30-6.el8_10 | 0:1.30-6.el8_10 |
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:25.10 |
All versions, plus listed versions 1.34-2build41.34-31.34-3ubuntu0.1 |
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 |
before 1.440.0-1.1 | 1.440.0-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| facts | OSV | |
| 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-4177 is a critical vulnerability (CVSS 9.1) in Toddr Yaml::syck, published March 16, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.46%, the 39th percentile. Fixed in perl-yaml-syck 1.45-r0.
References
github.com/cpan-authors/YAML-Syck/commit/e8844a31c8cf0052914b198fc784ed4e6b8ae69e.patch
metacpan.org/release/TODDR/YAML-Syck-1.37_01/changes
openwall.com/lists/oss-security/2026/03/16/6
access.redhat.com/security/cve/CVE-2026-4177
bugzilla.redhat.com/show_bug.cgi?id=2448277
security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-4177.json
Show 26 moreShow less
access.redhat.com/errata/RHSA-2026:8311
access.redhat.com/errata/RHSA-2026:6470
nvd.nist.gov/vuln/detail/CVE-2026-4177
github.com/advisories/GHSA-72r6-p2x3-g9gj
security.alpinelinux.org/vuln/CVE-2026-4177
bugzilla.redhat.com/2448277
errata.almalinux.org/8/ALSA-2026-6470.html
docs.bell-sw.com/security/cves/CVE-2026-4177
cpan.org/modules
github.com/CVEProject/cvelistV5/tree/main/cves/2026/4xxx/CVE-2026-4177.json
github.com/cpan-authors/YAML-Syck
security-tracker.debian.org/tracker/CVE-2026-4177
advisories.mageia.org/MGASA-2026-0058.html
bugs.mageia.org/show_bug.cgi?id=35219
access.redhat.com/security/updates/classification
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_6470.json
cve.org/CVERecord?id=CVE-2026-4177
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_8311.json
errata.rockylinux.org/RLSA-2026:6470
ubuntu.com/security/CVE-2026-4177
lists.security.metacpan.org/cve-announce/msg/38035745
github.com/cpan-authors/YAML-Syck/commit/e8844a31c8cf0052914b198fc784ed4e6b8ae69e
suse.com/security/cve/CVE-2026-4177
bugzilla.suse.com/1252111
bugzilla.suse.com/1259757
suse.com/security/cve/CVE-2025-11683
Left out here: the rest of 1 source description. The JSON record has them.