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 >= ptr && *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.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| TODDR | YAML::Syck | < 1.38 | 1.38 |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | libyaml-syck-perl | 1.36-3 | — |
| Debian 13 | libyaml-syck-perl | 1.34-2+deb13u3 | — |
| Debian 12 | libyaml-syck-perl | 1.34-2+deb12u3 | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.10 | libyaml-syck-perl | No fix yet | — |
| Ubuntu 26.04 LTS | libyaml-syck-perl | No fix yet | — |
| Ubuntu 25.10 | libyaml-syck-perl | No fix yet | — |
Show 5 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Pro 24.04 LTS | libyaml-syck-perl | No fix yet | — |
| Ubuntu Pro 22.04 LTS | libyaml-syck-perl | No fix yet | — |
| Ubuntu Pro 20.04 LTS | libyaml-syck-perl | No fix yet | — |
| Ubuntu Pro 18.04 LTS | libyaml-syck-perl | No fix yet | — |
| Ubuntu Pro 16.04 LTS | libyaml-syck-perl | No fix yet | — |
openSUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| openSUSE Tumbleweed | perl-YAML-Syck | 1.450.0-4.1 | openSUSE-SU-2026:10846-1 |
| openSUSE Leap 16.0 | perl-YAML-Syck | 1.450.0-bp160.2.1 | openSUSE-SU-2026:20938-1 |
Amazon Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Amazon Linux 2023 | perl-YAML-Syck +1 | 1.37-1.amzn2023.0.3 | ALAS2023-2026-1769 |
| Amazon Linux 2 | perl-YAML-Syck | 1.27-3.amzn2.0.5 | ALAS2-2026-3327 |
Azure Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Azure Linux 3 | perl-YAML +1 | No fix yet | — |
Advisories 4
- openSUSE-SU-2026:20938-1 Security update for perl-YAML-Syck SUSE / openSUSE Security Updates · Jun 13, 2026
- ALAS2-2026-3327 Moderate: perl-YAML-Syck security update (Amazon Linux 2) Amazon Linux Security Center (ALAS) · Jun 8, 2026
- ALAS2023-2026-1769 Moderate: perl-YAML-Syck security update (Amazon Linux 2023) Amazon Linux Security Center (ALAS) · May 25, 2026
- openSUSE-SU-2026:10846-1 perl-YAML-Syck-1.450.0-4.1 on GA media SUSE / openSUSE Security Updates · May 24, 2026
References
- https://metacpan.org/release/TODDR/YAML-Syck-1.38/changes release-notes
- https://github.com/cpan-authors/YAML-Syck/issues/132 issue-tracking
- https://github.com/cpan-authors/YAML-Syck/pull/133 issue-tracking
- https://github.com/cpan-authors/YAML-Syck/commit/208a4d3bd1b5cdb4a791a6e3905bd6bd45e9d005.patch patch