CVE-2019-25777: YAML versions before 1.27_001 for Perl allow a loaded perl/glob document to replace any package variable, which can lead to arbitrary code execution

Published Oct 5, 2026
·
Updated

Last updated 14 October 2026

Other sources

YAML versions before 1.27001 for Perl allow a loaded perl/glob document to replace any package variable, which can lead to arbitrary code execution.

— Launchpad

Affected Software

2 affected componentsFixes available
Perl YAML<1.27_001
debian/libyaml-perl
1.30-21.31-11.321-1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade debian/libyaml-perl to a version that resolves this vulnerability.

    Fixed in 1.30-2Fixed in 1.31-1Fixed in 1.321-1
  2. Upgrade

    Upgrade YAML for Perl to a version that resolves this vulnerability.

    Fixed in 1.28

Event History

Oct 5, 2026
CVE Published
via MITRE·06:50 AM
Data Sourced
via MITRE·06:50 AM
RemedyDescriptionWeakness
Data Sourced
via Red Hat·07:08 AM
DescriptionSeverityAffected Software
Data Sourced
via NVD·07:16 AM
DescriptionSeverityWeakness
Data Sourced
via OSV·07:16 AM
DescriptionSeverity

Frequently Asked Questions

1

Which applications are realistically exposed?

Applications that call YAML Load() on attacker-supplied YAML are exposed if the vulnerable Perl YAML version is in use. Exploitation requires the attacker-controlled documents to be loaded within the same process.

2

Does the default code-loading setting prevent exploitation?

No. Although code loading is off by default, a perl/glob document can set $YAML::LoadCode or $YAML::UseCode and enable it for later Load() calls in that process.

3

What does an attacker need to provide to achieve code execution?

The attacker needs to provide a perl/glob document that changes a package variable, followed by a perl/code document passed to a later Load() call in the same process. The second document is evaluated with string eval after code loading has been enabled.

4

What should be done if the application cannot be updated immediately?

Do not pass untrusted YAML to Load(), particularly where multiple attacker-controlled documents may be processed by the same Perl process. Prevent perl/glob documents from reaching the loader, since they can modify package variables including YAML load options.

5

How can I determine whether the installed library is affected?

Versions before 1.27_001 are affected. Review the installed Perl YAML package version and identify whether the application loads untrusted YAML or performs multiple Load() calls in a shared process.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203