Every CVE Search/ Get API key

CVE-2026-13713

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

6.2 MediumFix available

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.

In the bundled libsyck, when an anchor name is redefined or removed, syck_hdlr_add_anchor and syck_hdlr_remove_anchor free the node stored under that name with syck_free_node. That node can still be live on the parser's value stack, so syck_hdlr_add_node reaches it again and frees it a second time. On a normal build the 48-byte node chunk is freed twice and the interpreter aborts. Anchors need no special flags, so this is reached on the default Load path, and a 7-byte document that redefines an anchor triggers it.

Any caller that runs Load or LoadFile on an untrusted document that redefines an anchor mid-parse crashes the interpreter, a denial of service.

Attack profile

How easy it is to exploit

Attack vector
Local
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
None
Availability
High

Exploit likelihood

0.18%Unchanged since Jul 17, 2026
90%50%10%1%

What each source reports

CVE List Score used 6.2

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 a use-after-free and double-free via an anchor node freed while still on the parser value stack.

In the bundled libsyck, when an anchor name is redefined or removed, syck_hdlr_add_anchor and syck_hdlr_remove_anchor free the node stored under that name with syck_free_node. That node can still be live on the parser's value stack, so syck_hdlr_add_node reaches it again and frees it a second time. On a normal build the 48-byte node chunk is freed twice and the interpreter aborts. Anchors need no special flags, so this is reached on the default Load path, and a 7-byte document that redefines an anchor triggers it.

Any caller that runs Load or LoadFile on an untrusted document that redefines an anchor mid-parse crashes the interpreter, a denial of service.

Record
CVE-2026-13713
CVSS 3.1
6.2 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-416, CWE-415
Updated
2026-11-02
EUVDEUVD-2026-45052 6.2

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.

In the bundled libsyck, when an anchor name is redefined or removed, syck_hdlr_add_anchor and syck_hdlr_remove_anchor free the node stored under that name with syck_free_node. That node can still be live on the parser's value stack, so syck_hdlr_add_node reaches it again and frees it a second time. On a normal build the 48-byte node chunk is freed twice and the interpreter aborts. Anchors need no special flags, so this is reached on the default Load path, and a 7-byte document that redefines an anchor triggers it.

Any caller that runs Load or LoadFile on an untrusted document that redefines an anchor mid-parse crashes the interpreter, a denial of service.

Record
EUVD-2026-45052
CVSS 3.1
6.2 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
GitHub AdvisoriesGHSA-p3p9-6pr6-mr9m 6.2

YAML::Syck versions before 1.47 for Perl allow a use-after-free and double-free via an anchor...

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.

In the bundled libsyck, when an anchor name is redefined or removed, syck_hdlr_add_anchor and syck_hdlr_remove_anchor free the node stored under that name with syck_free_node. That node can still be live on the parser's value stack, so syck_hdlr_add_node reaches it again and frees it a second time. On a normal build the 48-byte node chunk is freed twice and the interpreter aborts. Anchors need no special flags, so this is reached on the default Load path, and a 7-byte document that redefines an anchor triggers it.

Any caller that runs Load or LoadFile on an untrusted document that redefines an anchor mid-parse crashes the interpreter, a denial of service.

Record
GHSA-p3p9-6pr6-mr9m
CVSS 3.1
6.2 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-415
Updated
2026-11-02
NVD 6.2

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.

In the bundled libsyck, when an anchor name is redefined or removed, syck_hdlr_add_anchor and syck_hdlr_remove_anchor free the node stored under that name with syck_free_node. That node can still be live on the parser's value stack, so syck_hdlr_add_node reaches it again and frees it a second time. On a normal build the 48-byte node chunk is freed twice and the interpreter aborts. Anchors need no special flags, so this is reached on the default Load path, and a 7-byte document that redefines an anchor triggers it.

Any caller that runs Load or LoadFile on an untrusted document that redefines an anchor mid-parse crashes the interpreter, a denial of service.

Record
CVE-2026-13713
CVSS 3.1
6.2 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-415, CWE-416
Updated
2026-11-02
OSVALPINE-CVE-2026-13713 6.2

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.

In the bundled libsyck, when an anchor name is redefined or removed, syck_hdlr_add_anchor and syck_hdlr_remove_anchor free the node stored under that name with syck_free_node. That node can still be live on the parser's value stack, so syck_hdlr_add_node reaches it again and frees it a second time. On a normal build the 48-byte node chunk is freed twice and the interpreter aborts. Anchors need no special flags, so this is reached on the default Load path, and a 7-byte document that redefines an anchor triggers it.

Any caller that runs Load or LoadFile on an untrusted document that redefines an anchor mid-parse crashes the interpreter, a denial of service.

Record
ALPINE-CVE-2026-13713
CVSS 3.1
6.2 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVBELL-CVE-2026-13713 6.2
Record
BELL-CVE-2026-13713
CVSS 3.1
6.2 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
Show 12 moreShow less
OSV 6.2

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 a use-after-free and double-free via an anchor node freed while still on the parser value stack.

In the bundled libsyck, when an anchor name is redefined or removed, syck_hdlr_add_anchor and syck_hdlr_remove_anchor free the node stored under that name with syck_free_node. That node can still be live on the parser's value stack, so syck_hdlr_add_node reaches it again and frees it a second time. On a normal build the 48-byte node chunk is freed twice and the interpreter aborts. Anchors need no special flags, so this is reached on the default Load path, and a 7-byte document that redefines an anchor triggers it.

Any caller that runs Load or LoadFile on an untrusted document that redefines an anchor mid-parse crashes the interpreter, a denial of service.

Record
CVE-2026-13713
CVSS 3.1
6.2 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-415, CWE-416
Updated
2026-11-02
OSVDEBIAN-CVE-2026-13713 6.2

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. In the bundled libsyck, when an anchor name is redefined or removed, syck_hdlr_add_anchor and syck_hdlr_remove_anchor free the node stored under that name with syck_free_node. That node can still be live on the parser's value stack, so syck_hdlr_add_node reaches it again and frees it a second time. On a normal build the 48-byte node chunk is freed twice and the interpreter aborts. Anchors need no special flags, so this is reached on the default Load path, and a 7-byte document that redefines an anchor triggers it. Any caller that runs Load or LoadFile on an untrusted document that redefines an anchor mid-parse crashes the interpreter, a denial of service.

Record
DEBIAN-CVE-2026-13713
CVSS 3.1
6.2 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVRHSA-2026:67269 7.5

Red Hat Security Advisory: perl-YAML-Syck security update

Record
RHSA-2026:67269
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVRLSA-2026:67269 7.5

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

  • YAML-Syck: YAML::Syck: Denial of Service via crafted YAML document (CVE-2026-13713)

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:67269
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVUBUNTU-CVE-2026-13713 6.2

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. In the bundled libsyck, when an anchor name is redefined or removed, syck_hdlr_add_anchor and syck_hdlr_remove_anchor free the node stored under that name with syck_free_node. That node can still be live on the parser's value stack, so syck_hdlr_add_node reaches it again and frees it a second time. On a normal build the 48-byte node chunk is freed twice and the interpreter aborts. Anchors need no special flags, so this is reached on the default Load path, and a 7-byte document that redefines an anchor triggers it. Any caller that runs Load or LoadFile on an untrusted document that redefines an anchor mid-parse crashes the interpreter, a denial of service.

Record
UBUNTU-CVE-2026-13713
CVSS 3.1
6.2 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVALSA-2026:67269 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):

  • YAML-Syck: YAML::Syck: Denial of Service via crafted YAML document (CVE-2026-13713)

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:67269
Updated
2026-11-02
OSVAZL-109520 No score

CVE-2026-13713 affecting package perl-YAML 1.30-2

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.

In the bundled libsyck, when an anchor name is redefined or removed, syck_hdlr_add_anchor and syck_hdlr_remove_anchor free the node stored under that name with syck_free_node. That node can still be live on the parser's value stack, so syck_hdlr_add_node reaches it again and frees it a second time. On a normal build the 48-byte node chunk is freed twice and the interpreter aborts. Anchors need no special flags, so this is reached on the default Load path, and a 7-byte document that redefines an anchor triggers it.

Any caller that runs Load or LoadFile on an untrusted document that redefines an anchor mid-parse crashes the interpreter, a denial of service.

Record
AZL-109520
Updated
2026-11-02
OSVAZL-92904 No score

CVE-2026-13713 affecting package perl-YAML-Syck 1.34-1

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.

In the bundled libsyck, when an anchor name is redefined or removed, syck_hdlr_add_anchor and syck_hdlr_remove_anchor free the node stored under that name with syck_free_node. That node can still be live on the parser's value stack, so syck_hdlr_add_node reaches it again and frees it a second time. On a normal build the 48-byte node chunk is freed twice and the interpreter aborts. Anchors need no special flags, so this is reached on the default Load path, and a 7-byte document that redefines an anchor triggers it.

Any caller that runs Load or LoadFile on an untrusted document that redefines an anchor mid-parse crashes the interpreter, a denial of service.

Record
AZL-92904
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-Syck
AlmaLinux:8
before 1.30-7.el8_10
1.30-7.el8_10
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
Show 15 moreShow less
Affected packages
PackageAffectedFixed
perl-YAML-Syck
Mageia:10
From an advisory covering 4 CVEs
before 1.470.0-1.mga10
1.470.0-1.mga10
perl-YAML-Syck
Mageia:9
From an advisory covering 4 CVEs
before 1.470.0-1.mga9
1.470.0-1.mga9
perl-YAML-Syck
Red Hat:enterprise_linux:8::crb
before 0:1.30-7.el8_10
0:1.30-7.el8_10
perl-YAML-Syck-debuginfo
Red Hat:enterprise_linux:8::crb
before 0:1.30-7.el8_10
0:1.30-7.el8_10
perl-YAML-Syck-debugsource
Red Hat:enterprise_linux:8::crb
before 0:1.30-7.el8_10
0:1.30-7.el8_10
perl-YAML-Syck
Rocky Linux:8
before 0:1.30-7.el8_10
0:1.30-7.el8_10
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-13713 is a medium vulnerability (CVSS 6.2) 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.18%, the 7th percentile. Fixed in perl-yaml-syck 1.47-r0.

References

Show 29 moreShow less
MoveEnter Open