{"id":"CVE-2026-5089","aliases":["AZL-109511","AZL-86901","BELL-CVE-2026-5089","DEBIAN-CVE-2026-5089","EUVD-2026-29543","GHSA-jcwf-qrr5-xwq3","MGASA-2026-0148","UBUNTU-CVE-2026-5089","openSUSE-SU-2026:10846-1","openSUSE-SU-2026:20938-1"],"status":"published","title":"YAML::Syck versions before 1.38 for Perl has an out-of-bounds read","description":"YAML::Syck versions before 1.38 for Perl  has an out-of-bounds read.\n\nThe base60 (sexagesimal) parsing code in perl_syck.h has a buffer underflow bug in both int#base60 and float#base60 handlers. When processing the leftmost segment of a colon-separated value (e.g., the 1 in 1:30:45), the inner while loop can decrement a pointer past the start of the string buffer:\n\n    while ( colon \u003e= ptr \u0026\u0026 *colon != ':' )\n    {\n        colon--;\n    }\n    if ( *colon == ':' ) *colon = '\\0';  // colon may be ptr-1 here\n\nWhen no colon is found (final/leftmost segment), colon becomes ptr-1, and the subsequent *colon dereference reads one byte before the allocated buffer.","severity":{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L","level":"high","assessor":"adp","from":"cve"},"epss":{"day":"2026-11-09","score":0.00404,"percentile":0.3489,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-124"],"published":"2026-05-12T16:14:21Z","modified":"2026-11-05T05:36:30Z","fixes":[{"ecosystem":"Alpaquita:23","package":"perl-yaml-syck","fixed_in":["1.34-r4"],"sources":["osv"]},{"ecosystem":"Alpaquita:25","package":"perl-yaml-syck","fixed_in":["1.34-r7"],"sources":["osv"]},{"ecosystem":"Alpaquita:stream","package":"perl-yaml-syck","fixed_in":["1.45-r0"],"sources":["osv"]},{"ecosystem":"Debian:12","package":"libyaml-syck-perl","fixed_in":["1.34-2+deb12u3"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"libyaml-syck-perl","fixed_in":["1.34-2+deb13u3"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"libyaml-syck-perl","fixed_in":["1.36-3"],"sources":["osv"]},{"ecosystem":"Mageia:9","package":"perl-YAML-Syck","fixed_in":["1.450.0-1.mga9"],"sources":["osv"]},{"ecosystem":"openSUSE:Tumbleweed","package":"perl-YAML-Syck","fixed_in":["1.450.0-4.1"],"sources":["osv"]},{"ecosystem":"openSUSE:Leap 16.0","package":"perl-YAML-Syck","fixed_in":["1.450.0-bp160.2.1"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Azure Linux:3","package":"perl-YAML","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"1.30-2"}]}]},{"source":"osv","ecosystem":"Azure Linux:3","package":"perl-YAML-Syck","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"1.34-1"}]}]},{"source":"osv","ecosystem":"Alpaquita:23","package":"perl-yaml-syck","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.34-r2"},{"fixed":"1.34-r4"}]}]},{"source":"osv","ecosystem":"Alpaquita:25","package":"perl-yaml-syck","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.34-r5"},{"fixed":"1.34-r7"}]}]},{"source":"osv","ecosystem":"Alpaquita:stream","package":"perl-yaml-syck","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.34-r1"},{"fixed":"1.45-r0"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"libyaml-syck-perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.34-2+deb12u3"}]}],"versions":["1.34-2","1.34-2+deb12u1","1.34-2+deb12u2"]},{"source":"osv","ecosystem":"Debian:13","package":"libyaml-syck-perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.34-2+deb13u3"}]}],"versions":["1.34-2","1.34-2+deb13u1","1.34-2+deb13u2"]},{"source":"osv","ecosystem":"Debian:14","package":"libyaml-syck-perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.36-3"}]}],"versions":["1.34-2","1.34-3","1.34-4","1.36-1","1.36-2"]},{"source":"osv","ecosystem":"Mageia:9","package":"perl-YAML-Syck","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.450.0-1.mga9"}]}]},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"libyaml-syck-perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.27-2build2","1.29-1","1.29-1build1","1.29-1ubuntu0.16.04.1~esm1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:18.04:LTS","package":"libyaml-syck-perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.29-1build3","1.29-1ubuntu0.18.04.1~esm1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:20.04:LTS","package":"libyaml-syck-perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.31-1","1.31-1build1","1.31-1ubuntu0.1~esm1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:22.04:LTS","package":"libyaml-syck-perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.34-1build1","1.34-1build2","1.34-1ubuntu0.1~esm1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:24.04:LTS","package":"libyaml-syck-perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.34-2","1.34-2build1","1.34-2build2","1.34-2build3","1.34-2ubuntu0.24.04.1~esm1"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"libyaml-syck-perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.34-2build4","1.34-3","1.34-3ubuntu0.1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"libyaml-syck-perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.36-1","1.36-3","1.47-1","1.47-1build1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"libyaml-syck-perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.34-3","1.34-4","1.36-1"]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"perl-YAML-Syck","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.450.0-4.1"}]}]},{"source":"osv","ecosystem":"openSUSE:Leap 16.0","package":"perl-YAML-Syck","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.450.0-bp160.2.1"}]}]}],"products":[{"vendor":"toddr","product":"yaml::syck"}],"references":[{"url":"https://metacpan.org/release/TODDR/YAML-Syck-1.38/changes","tags":["release-notes","advisory"]},{"url":"https://github.com/cpan-authors/YAML-Syck/issues/132","tags":["issue-tracking","exploit","report"]},{"url":"https://github.com/cpan-authors/YAML-Syck/pull/133","tags":["issue-tracking","report"]},{"url":"https://github.com/cpan-authors/YAML-Syck/commit/208a4d3bd1b5cdb4a791a6e3905bd6bd45e9d005.patch","tags":["patch","fix"]},{"url":"http://www.openwall.com/lists/oss-security/2026/05/12/16","tags":["web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-5089","tags":["web","advisory"]},{"url":"https://github.com/advisories/GHSA-jcwf-qrr5-xwq3"},{"url":"https://docs.bell-sw.com/security/cves/CVE-2026-5089","tags":["advisory"]},{"url":"https://cpan.org/modules","tags":["web"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/5xxx/CVE-2026-5089.json","tags":["advisory"]},{"url":"https://github.com/toddr/YAML-Syck","tags":["package"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-5089","tags":["advisory"]},{"url":"https://advisories.mageia.org/MGASA-2026-0148.html","tags":["advisory"]},{"url":"https://bugs.mageia.org/show_bug.cgi?id=35525","tags":["report"]},{"url":"https://www.openwall.com/lists/oss-security/2026/05/12/16","tags":["web"]},{"url":"https://metacpan.org/release/TODDR/YAML-Syck-1.45/source/Changes","tags":["web"]},{"url":"https://ubuntu.com/security/CVE-2026-5089","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-5089","tags":["report"]},{"url":"https://lists.security.metacpan.org/cve-announce/msg/39981051/","tags":["report"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2026-5089","tags":["web"]},{"url":"https://bugzilla.suse.com/1265155","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2026-5089","title":"YAML::Syck versions before 1.38 for Perl has an out-of-bounds read","description":"YAML::Syck versions before 1.38 for Perl  has an out-of-bounds read.\n\nThe base60 (sexagesimal) parsing code in perl_syck.h has a buffer underflow bug in both int#base60 and float#base60 handlers. When processing the leftmost segment of a colon-separated value (e.g., the 1 in 1:30:45), the inner while loop can decrement a pointer past the start of the string buffer:\n\n    while ( colon \u003e= ptr \u0026\u0026 *colon != ':' )\n    {\n        colon--;\n    }\n    if ( *colon == ':' ) *colon = '\\0';  // colon may be ptr-1 here\n\nWhen no colon is found (final/leftmost segment), colon becomes ptr-1, and the subsequent *colon dereference reads one byte before the allocated buffer.","status":"published","published":"2026-05-12T16:14:21.951Z","modified":"2026-05-14T13:51:01.952Z","cvss":[{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L","level":"high","assessor":"adp"}],"cwes":["CWE-124"],"updated_at":"2026-11-02T13:39:39.001586Z"}],"euvd":[{"id":"EUVD-2026-29543","description":"YAML::Syck versions before 1.38 for Perl  has an out-of-bounds read.\n\nThe base60 (sexagesimal) parsing code in perl_syck.h has a buffer underflow bug in both int#base60 and float#base60 handlers. When processing the leftmost segment of a colon-separated value (e.g., the 1 in 1:30:45), the inner while loop can decrement a pointer past the start of the string buffer:\n\n    while ( colon \u003e= ptr \u0026\u0026 *colon != ':' )\n    {\n        colon--;\n    }\n    if ( *colon == ':' ) *colon = '\\0';  // colon may be ptr-1 here\n\nWhen no colon is found (final/leftmost segment), colon becomes ptr-1, and the subsequent *colon dereference reads one byte before the allocated buffer.","status":"published","published":"2026-05-12T16:14:21Z","modified":"2026-05-14T13:51:01Z","cvss":[{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L","level":"high"}],"updated_at":"2026-11-02T19:04:31.113278Z"}],"ghsa":[{"id":"GHSA-jcwf-qrr5-xwq3","title":"YAML::Syck versions before 1.38 for Perl  has an out-of-bounds read.\n\nThe base60 (sexagesimal)...","description":"YAML::Syck versions before 1.38 for Perl  has an out-of-bounds read.\n\nThe base60 (sexagesimal) parsing code in perl_syck.h has a buffer underflow bug in both int#base60 and float#base60 handlers. When processing the leftmost segment of a colon-separated value (e.g., the 1 in 1:30:45), the inner while loop can decrement a pointer past the start of the string buffer:\n\n    while ( colon \u003e= ptr \u0026\u0026 *colon != ':' )\n    {\n        colon--;\n    }\n    if ( *colon == ':' ) *colon = '\\0';  // colon may be ptr-1 here\n\nWhen no colon is found (final/leftmost segment), colon becomes ptr-1, and the subsequent *colon dereference reads one byte before the allocated buffer.","status":"published","published":"2026-05-12T18:30:39Z","modified":"2026-05-14T15:32:55Z","cvss":[{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L","level":"high"}],"cwes":["CWE-124"],"updated_at":"2026-11-02T15:08:08.953643Z"}],"nvd":[{"id":"CVE-2026-5089","description":"YAML::Syck versions before 1.38 for Perl  has an out-of-bounds read.\n\nThe base60 (sexagesimal) parsing code in perl_syck.h has a buffer underflow bug in both int#base60 and float#base60 handlers. When processing the leftmost segment of a colon-separated value (e.g., the 1 in 1:30:45), the inner while loop can decrement a pointer past the start of the string buffer:\n\n    while ( colon \u003e= ptr \u0026\u0026 *colon != ':' )\n    {\n        colon--;\n    }\n    if ( *colon == ':' ) *colon = '\\0';  // colon may be ptr-1 here\n\nWhen no colon is found (final/leftmost segment), colon becomes ptr-1, and the subsequent *colon dereference reads one byte before the allocated buffer.","status":"published","published":"2026-05-12T17:16:21.72Z","modified":"2026-10-26T18:10:00.173Z","cvss":[{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L","level":"high","assessor":"secondary"}],"cwes":["CWE-124"],"updated_at":"2026-11-02T14:12:18.613259Z"}],"osv":[{"id":"BELL-CVE-2026-5089","status":"published","published":"2026-05-21T06:10:54.724248Z","modified":"2026-05-26T07:15:14.951499038Z","cvss":[{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L","level":"high"}],"updated_at":"2026-11-02T15:28:24.391068Z"},{"id":"CVE-2026-5089","title":"YAML::Syck versions before 1.38 for Perl has an out-of-bounds read","description":"YAML::Syck versions before 1.38 for Perl  has an out-of-bounds read.\n\nThe base60 (sexagesimal) parsing code in perl_syck.h has a buffer underflow bug in both int#base60 and float#base60 handlers. When processing the leftmost segment of a colon-separated value (e.g., the 1 in 1:30:45), the inner while loop can decrement a pointer past the start of the string buffer:\n\n    while ( colon \u003e= ptr \u0026\u0026 *colon != ':' )\n    {\n        colon--;\n    }\n    if ( *colon == ':' ) *colon = '\\0';  // colon may be ptr-1 here\n\nWhen no colon is found (final/leftmost segment), colon becomes ptr-1, and the subsequent *colon dereference reads one byte before the allocated buffer.","status":"published","published":"2026-05-12T16:14:21.951Z","modified":"2026-10-28T11:16:43.560842479Z","cvss":[{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L","level":"high"}],"cwes":["CWE-124"],"updated_at":"2026-11-02T15:45:07.431113Z"},{"id":"DEBIAN-CVE-2026-5089","description":"YAML::Syck versions before 1.38 for Perl  has an out-of-bounds read.  The base60 (sexagesimal) parsing code in perl_syck.h has a buffer underflow bug in both int#base60 and float#base60 handlers. When processing the leftmost segment of a colon-separated value (e.g., the 1 in 1:30:45), the inner while loop can decrement a pointer past the start of the string buffer:      while ( colon \u003e= ptr \u0026\u0026 *colon != ':' )     {         colon--;     }     if ( *colon == ':' ) *colon = '\\0';  // colon may be ptr-1 here  When no colon is found (final/leftmost segment), colon becomes ptr-1, and the subsequent *colon dereference reads one byte before the allocated buffer.","status":"published","published":"2026-05-12T17:16:21.72Z","modified":"2026-10-27T09:47:43.994250374Z","cvss":[{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L","level":"high"}],"updated_at":"2026-11-02T15:45:56.877408Z"},{"id":"UBUNTU-CVE-2026-5089","description":"YAML::Syck versions before 1.38 for Perl  has an out-of-bounds read. The base60 (sexagesimal) parsing code in perl_syck.h has a buffer underflow bug in both int#base60 and float#base60 handlers. When processing the leftmost segment of a colon-separated value (e.g., the 1 in 1:30:45), the inner while loop can decrement a pointer past the start of the string buffer:     while ( colon \u003e= ptr \u0026\u0026 *colon != ':' )     {         colon--;     }     if ( *colon == ':' ) *colon = '\\0';  // colon may be ptr-1 here When no colon is found (final/leftmost segment), colon becomes ptr-1, and the subsequent *colon dereference reads one byte before the allocated buffer.","status":"published","published":"2026-05-12T17:16:00Z","modified":"2026-10-17T12:58:33.447812941Z","cvss":[{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L","level":"high"}],"updated_at":"2026-11-02T16:56:33.391918Z"},{"id":"AZL-109511","title":"CVE-2026-5089 affecting package perl-YAML 1.30-2","description":"YAML::Syck versions before 1.38 for Perl  has an out-of-bounds read.\n\nThe base60 (sexagesimal) parsing code in perl_syck.h has a buffer underflow bug in both int#base60 and float#base60 handlers. When processing the leftmost segment of a colon-separated value (e.g., the 1 in 1:30:45), the inner while loop can decrement a pointer past the start of the string buffer:\n\n    while ( colon \u003e= ptr \u0026\u0026 *colon != ':' )\n    {\n        colon--;\n    }\n    if ( *colon == ':' ) *colon = '\\0';  // colon may be ptr-1 here\n\nWhen no colon is found (final/leftmost segment), colon becomes ptr-1, and the subsequent *colon dereference reads one byte before the allocated buffer.","status":"published","published":"2026-05-12T17:16:21Z","modified":"2026-10-27T05:36:16Z","updated_at":"2026-11-02T15:28:02.044071Z"},{"id":"AZL-86901","title":"CVE-2026-5089 affecting package perl-YAML-Syck 1.34-1","description":"YAML::Syck versions before 1.38 for Perl  has an out-of-bounds read.\n\nThe base60 (sexagesimal) parsing code in perl_syck.h has a buffer underflow bug in both int#base60 and float#base60 handlers. When processing the leftmost segment of a colon-separated value (e.g., the 1 in 1:30:45), the inner while loop can decrement a pointer past the start of the string buffer:\n\n    while ( colon \u003e= ptr \u0026\u0026 *colon != ':' )\n    {\n        colon--;\n    }\n    if ( *colon == ':' ) *colon = '\\0';  // colon may be ptr-1 here\n\nWhen no colon is found (final/leftmost segment), colon becomes ptr-1, and the subsequent *colon dereference reads one byte before the allocated buffer.","status":"published","published":"2026-05-12T17:16:21Z","modified":"2026-11-05T05:36:30Z","updated_at":"2026-11-05T16:41:25.190302Z"},{"id":"MGASA-2026-0148","title":"Updated perl-YAML-Syck package fixes security vulnerability","description":"YAML::Syck versions before 1.38 for Perl have an out-of-bounds read.\n","status":"published","published":"2026-05-18T19:12:53Z","modified":"2026-05-18T19:15:10.806572Z","updated_at":"2026-11-02T15:49:43.178336Z"},{"id":"openSUSE-SU-2026:10846-1","title":"perl-YAML-Syck-1.450.0-4.1 on GA media","description":"These are all security issues fixed in the perl-YAML-Syck-1.450.0-4.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2026-05-23T00:00:00Z","modified":"2026-05-24T13:30:05.156502605Z","updated_at":"2026-11-02T16:58:38.415593Z"},{"id":"openSUSE-SU-2026:20938-1","title":"Security update for perl-YAML-Syck","description":"This update for perl-YAML-Syck fixes the following issues:\n\nChanges in perl-YAML-Syck:\n\n- CVE-2026-5089: prevent buffer underflow in base60 (sexagesimal) parsing (PR #133) (bsc#1265155).\n","status":"published","published":"2026-06-10T11:47:47Z","modified":"2026-06-13T18:24:19.274527871Z","updated_at":"2026-11-02T16:58:41.885092Z"}]}}
