Every CVE Search/ Get API key

CVE-2026-5089

YAML::Syck versions before 1.38 for Perl has an out-of-bounds read

7.3 HighFix available

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.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
Low
Integrity
Low
Availability
Low

Exploit likelihood

0.40%Up 0.4 points since May 13, 2026
90%50%10%1%

What each source reports

CVE List Score used 7.3

YAML::Syck versions before 1.38 for Perl has an out-of-bounds read

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.

Record
CVE-2026-5089
CVSS 3.1
7.3 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
Weakness
CWE-124
Updated
2026-11-02
EUVDEUVD-2026-29543 7.3

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.

Record
EUVD-2026-29543
CVSS 3.1
7.3 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
Updated
2026-11-02
GitHub AdvisoriesGHSA-jcwf-qrr5-xwq3 7.3

YAML::Syck versions before 1.38 for Perl has an out-of-bounds read. The base60 (sexagesimal)...

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.

Record
GHSA-jcwf-qrr5-xwq3
CVSS 3.1
7.3 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
Weakness
CWE-124
Updated
2026-11-02
NVD 7.3

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.

Record
CVE-2026-5089
CVSS 3.1
7.3 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
Weakness
CWE-124
Updated
2026-11-02
OSVBELL-CVE-2026-5089 7.3
Record
BELL-CVE-2026-5089
CVSS 3.1
7.3 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
Updated
2026-11-02
OSV 7.3

YAML::Syck versions before 1.38 for Perl has an out-of-bounds read

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.

Record
CVE-2026-5089
CVSS 3.1
7.3 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
Weakness
CWE-124
Updated
2026-11-02
Show 7 moreShow less
OSVDEBIAN-CVE-2026-5089 7.3

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.

Record
DEBIAN-CVE-2026-5089
CVSS 3.1
7.3 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
Updated
2026-11-02
OSVUBUNTU-CVE-2026-5089 7.3

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.

Record
UBUNTU-CVE-2026-5089
CVSS 3.1
7.3 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
Updated
2026-11-02
OSVAZL-109511 No score

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

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.

Record
AZL-109511
Updated
2026-11-02
OSVAZL-86901 No score

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

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.

Record
AZL-86901
Updated
2026-11-05
OSVMGASA-2026-0148 No score

Updated perl-YAML-Syck package fixes security vulnerability

YAML::Syck versions before 1.38 for Perl have an out-of-bounds read.

Record
MGASA-2026-0148
Updated
2026-11-02
OSVopenSUSE-SU-2026:10846-1 No score

perl-YAML-Syck-1.450.0-4.1 on GA media

These are all security issues fixed in the perl-YAML-Syck-1.450.0-4.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2026:10846-1
Updated
2026-11-02
OSVopenSUSE-SU-2026:20938-1 No score

Security update for perl-YAML-Syck

This update for perl-YAML-Syck fixes the following issues:

Changes in perl-YAML-Syck:

  • CVE-2026-5089: prevent buffer underflow in base60 (sexagesimal) parsing (PR #133) (bsc#1265155).
Record
openSUSE-SU-2026:20938-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
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-r4
1.34-r4
perl-yaml-syck
Alpaquita:25
1.34-r5 up to 1.34-r7
1.34-r7
perl-yaml-syck
Alpaquita:stream
1.34-r1 up to 1.45-r0
1.45-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.36-3, plus listed versions
1.34-21.34-31.34-41.36-11.36-2
1.36-3
perl-YAML-Syck
Mageia:9
before 1.450.0-1.mga9
1.450.0-1.mga9
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
Show 9 moreShow less
Affected packages
PackageAffectedFixed
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:25.10
All versions, plus listed versions
1.34-2build41.34-31.34-3ubuntu0.1
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
before 1.450.0-4.1
1.450.0-4.1
perl-YAML-Syck
openSUSE:Leap 16.0
before 1.450.0-bp160.2.1
1.450.0-bp160.2.1

History

History
RecordedChangedSources
factsOSV
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-5089 is a high vulnerability (CVSS 7.3) in Toddr Yaml::syck, published May 12, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.40%, the 34th percentile. Fixed in perl-yaml-syck 1.34-r4.

References

Show 14 moreShow less
MoveEnter Open