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. A perl/glob document names a package and a symbol, and supplies the value assigned to it. Nothing restricts the name, so the target can be @INC or YAML's own load options. A perl/glob document that sets $YAML::LoadCode or $YAML::UseCode turns on code loading, which is off by default, for every later Load() in the process. A perl/code document is then passed to a string eval, so an attacker who supplies two documents to separate Load() calls in one process can execute arbitrary Perl code.
History

Tue, 06 Oct 2026 21:30:00 +0000

Type Values Removed Values Added
First Time appeared Ingydotnet
Ingydotnet yaml
Vendors & Products Ingydotnet
Ingydotnet yaml

Tue, 06 Oct 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 8.1, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H'}

ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

cvssV3_1

{'score': 7.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L'}


Mon, 05 Oct 2026 19:30:00 +0000

Type Values Removed Values Added
References

Mon, 05 Oct 2026 12:15:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

cvssV3_1

{'score': 8.1, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H'}

threat_severity

Important


Mon, 05 Oct 2026 07:00:00 +0000

Type Values Removed Values Added
Description 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. A perl/glob document names a package and a symbol, and supplies the value assigned to it. Nothing restricts the name, so the target can be @INC or YAML's own load options. A perl/glob document that sets $YAML::LoadCode or $YAML::UseCode turns on code loading, which is off by default, for every later Load() in the process. A perl/code document is then passed to a string eval, so an attacker who supplies two documents to separate Load() calls in one process can execute arbitrary Perl code.
Title 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
Weaknesses CWE-502
CWE-914
References

cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published: 2026-10-05T06:50:17.532Z

Updated: 2026-10-06T16:58:19.261Z

Reserved: 2026-09-21T21:17:21.642Z

Link: CVE-2019-25777

cve-icon Vulnrichment

Updated: 2026-10-06T16:58:01.220Z

cve-icon NVD

Status : Deferred

Published: 2026-10-05T07:16:29.557

Modified: 2026-10-06T17:17:09.893

Link: CVE-2019-25777

cve-icon Redhat

Severity : Important

Publid Date: 2026-10-05T06:50:17Z

Links: CVE-2019-25777 - Bugzilla