Skip to content
Fencer Vulns
high 7.3

CVE-2019-25777 json

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 2026-10-05 35 d ago modified 2026-10-06 33 d ago also EUVD-2019-20205

cvss
7.3
version 3.1, CNA
cisa kev
Not listed
not in CISA's catalog
epss
0.4%
EPSS 0.4% chance of exploitation in 30 days, percentile 29%
public exploits
0
none known

Summary

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.

Patch / fix

  • libyaml-perl Debian 14, Debian 13, Debian 12 1.29-1

debian advisories DEBIAN-CVE-2019-25777

  • libyaml-perl Ubuntu Pro 16.04 LTS 1.15-1ubuntu0.1~esm1
  • libyaml-perl Ubuntu Pro 18.04 LTS 1.24-1ubuntu0.1~esm1

ubuntu advisories UBUNTU-CVE-2019-25777

Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0

  • perl-YAML openSUSE Tumbleweed 1.321.0-2.1

opensuse advisories openSUSE-SU-2026:12368-1

  • perl-YAML AlmaLinux 8 1.24-4.module_el8.10.0+4341+ab0ec422

almalinux advisories ALSA-2026:93471

  • perl-YAML Rocky Linux 8 1.24-4.module+el8.10.0+40403+bd06a93a
  • perl-YAML Rocky Linux 8 1.24-4.module+el8.10.0+40403+df14587c
  • perl-YAML Rocky Linux 8 1.24-4.module+el8.10.0+40403+94558160
  • perl-YAML Rocky Linux 8 1.24-4.module+el8.10.0+40403+9457ea6c

rocky linux advisories RLSA-2026:93471

Vendor advisories

What the vendors themselves say about their products: affected, fixed or not affected, and what to do.

red hat product security vex CVE-2019-25777 updated cvss 8.1

perl-yaml: perl-yaml: Arbitrary code execution via unrestricted package variable assignment

  • Red Hat Enterprise Linux 7 perl-YAML 1.31-7.el10
    affected: workaround, no fix available
  • Red Hat Enterprise Linux AppStream (v. 8) perl-YAML 1.24-4.module+el8.10.0+25073+42d87e53, perl-YAML 1.24-4.module+el8.10.0+25073+d1062575
    fixed: vendor fix RHSA-2026:93471
  • Red Hat Enterprise Linux 6 perl-YAML 1.31-7.el10 Red Hat Enterprise Linux 9 perl-YAML 1.31-7.el10 Red Hat Enterprise Linux 10 perl-YAML 1.31-7.el10
    not affected: vulnerable code not present

Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf

CISA SSVC

Exploitation
none
Automatable
yes
Technical impact
partial
Assessed
33 d ago

Exploit prediction

0.35% chance of exploitation in the next 30 days, higher than 29% of all scored CVEs (FIRST EPSS, 2026-11-08).

CVSS scores

assigned by version score vector
CISA ADP 3.1 7.3 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
CNA 3.1 7.3 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L

Classification

Weakness
  • CWE-914 Improper Control of Dynamically-Identified Variables
  • CWE-502 Deserialization of Untrusted Data

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.