Source: libyaml-syck-perl Version: 1.36-3 Severity: important Tags: security upstream X-Debbugs-Cc: [email protected], Debian Security Team <[email protected]>
Hi, The following vulnerabilities were published for libyaml-syck-pel. Sorry I'm filling one single bug covering multiple CVEs but in this case there was as well just one commit covering all 4 CVEs, so it is affordable to cover in one bug and not make further affected version distinctions. CVE-2026-57077[0]: | YAML::Syck versions before 1.47 for Perl allow an out-of-bounds read | via an unbounded newline scan in newline_len. In the bundled | libsyck newline_len and is_newline dereference the scan pointer, and | the following byte for a "\r\n" pair, with no NUL-terminator or | bounds check. During block-scalar lexing at a document boundary the | scan runs one byte past the heap lexer buffer. This is an incomplete | fix of CVE-2025-11683, on a lexer path the earlier fix did not | cover. Any caller that runs Load or LoadFile on an untrusted | document with a block scalar at a document boundary reaches the | over-read. CVE-2026-57076[1]: | 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. In the bundled libsyck an anchor name | allocated by syck_strndup is stored both as node->anchor, freed when | the node is freed, and as the key in the parser's anchors table. | Freeing the node frees the shared key, and a later anchor | redefinition makes st_delete compare against the freed key, so | st_strcmp reads freed heap memory. Anchors are a standard YAML | feature and need no special flags, so this is reached on the default | Load path. Any caller that runs Load or LoadFile on an untrusted | document that redefines an anchor reaches the read of freed memory. CVE-2026-57075[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. CVE-2026-13713[3]: | 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. If you fix the vulnerabilities please also make sure to include the CVE (Common Vulnerabilities & Exposures) ids in your changelog entry. For further information see: [0] https://security-tracker.debian.org/tracker/CVE-2026-57077 https://www.cve.org/CVERecord?id=CVE-2026-57077 [1] https://security-tracker.debian.org/tracker/CVE-2026-57076 https://www.cve.org/CVERecord?id=CVE-2026-57076 [2] https://security-tracker.debian.org/tracker/CVE-2026-57075 https://www.cve.org/CVERecord?id=CVE-2026-57075 [3] https://security-tracker.debian.org/tracker/CVE-2026-13713 https://www.cve.org/CVERecord?id=CVE-2026-13713 [4] https://github.com/toddr/YAML-Syck/commit/44c90a109ec3215ee7ce747bd11209835e123d8b Regards, Salvatore

