{"id":"CVE-2026-13713","state":"PUBLISHED","title":"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","description":"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.\n\nIn 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.\n\nAny caller that runs Load or LoadFile on an untrusted document that redefines an anchor mid-parse crashes the interpreter, a denial of service.","publishedAt":"2026-07-16T21:35:31.477Z","updatedAt":"2026-07-17T13:18:02.930Z","severity":{"score":6.2,"label":"Medium","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","source":"CISA-ADP"},"assigner":"CPANSec","products":["TODDR YAML::Syck"],"affected":[{"vendor":"TODDR","product":"YAML::Syck","packageName":"YAML-Syck","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"1.47","versionType":"custom"}],"collectionURL":"https://cpan.org/modules","programFiles":["handler.c","syck_.c","syck.h"],"programRoutines":[{"name":"syck_hdlr_add_anchor"},{"name":"syck_hdlr_remove_anchor"},{"name":"syck_hdlr_add_node"}],"repo":"https://github.com/toddr/YAML-Syck"}],"references":["https://metacpan.org/release/TODDR/YAML-Syck-1.47/changes","https://github.com/toddr/YAML-Syck/commit/44c90a109ec3215ee7ce747bd11209835e123d8b.patch","http://www.openwall.com/lists/oss-security/2026/07/17/1"],"weaknesses":["CWE-416","CWE-415"],"ingestedAt":"2026-10-29T20:11:00.674Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/13xxx/CVE-2026-13713.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-13713","state":"PUBLISHED","datePublished":"2026-07-16T21:35:31.477Z","dateUpdated":"2026-07-17T13:18:02.930Z","assignerShortName":"CPANSec","assignerOrgId":"9b29abf9-4ab0-4765-b253-1875cd9b441e","dateReserved":"2026-06-29T13:57:19.498Z"},"containers":{"cna":{"title":"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","descriptions":[{"lang":"en","value":"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.\n\nIn 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.\n\nAny caller that runs Load or LoadFile on an untrusted document that redefines an anchor mid-parse crashes the interpreter, a denial of service."}],"affected":[{"vendor":"TODDR","product":"YAML::Syck","packageName":"YAML-Syck","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"1.47","versionType":"custom"}],"collectionURL":"https://cpan.org/modules","programFiles":["handler.c","syck_.c","syck.h"],"programRoutines":[{"name":"syck_hdlr_add_anchor"},{"name":"syck_hdlr_remove_anchor"},{"name":"syck_hdlr_add_node"}],"repo":"https://github.com/toddr/YAML-Syck"}],"references":[{"url":"https://metacpan.org/release/TODDR/YAML-Syck-1.47/changes","tags":["release-notes"]},{"url":"https://github.com/toddr/YAML-Syck/commit/44c90a109ec3215ee7ce747bd11209835e123d8b.patch","tags":["patch"]}],"problemTypes":[{"descriptions":[{"cweId":"CWE-416","description":"CWE-416 Use After Free","lang":"en","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-415","description":"CWE-415 Double Free","lang":"en","type":"CWE"}]}],"providerMetadata":{"shortName":"CPANSec","orgId":"9b29abf9-4ab0-4765-b253-1875cd9b441e","dateUpdated":"2026-07-16T21:35:31.477Z"},"solutions":[{"lang":"en","value":"Upgrade to YAML-Syck 1.47 or later."}],"source":{"discovery":"UNKNOWN"},"x_generator":{"engine":"cpansec-cna-tool 0.1"}},"adp":[{"title":"CVE Program Container","references":[{"url":"http://www.openwall.com/lists/oss-security/2026/07/17/1"}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2026-07-17T03:02:25.421Z"}},{"title":"CISA ADP Vulnrichment","metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":6.2,"attackVector":"LOCAL","baseSeverity":"MEDIUM","vectorString":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","integrityImpact":"NONE","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"HIGH","privilegesRequired":"NONE","confidentialityImpact":"NONE"}},{"other":{"type":"ssvc","content":{"timestamp":"2026-07-17T13:17:36.382946Z","id":"CVE-2026-13713","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-07-17T13:18:02.930Z"}}]}}}