YAML versions before 1.30 for Perl allow a loaded document to trigger the DESTROY method of arbitrary classes (YAML)

CVE-2017-20285
CRITICAL 9.1

At a glance

Source
NVD
EPSS
EPSS 0.34 % · percentile 28 ()
State
PUBLISHED
Published
Updated
Assigner
CPANSec
NVD status
Deferred

Description

YAML versions before 1.30 for Perl allow a loaded document to trigger the DESTROY method of arbitrary classes. A perl/hash:Class tag blesses a hash into the class it names. The document supplies the object's fields, and Perl calls DESTROY when it goes out of scope. What DESTROY does depends on the classes the process has loaded. With File::Temp::Dir from core Perl, it can delete a directory tree the document names.

Weaknesses (CWE)

  • CWE-502 — Deserialization of Untrusted Data
  • CWE-470 — Use of Externally-Controlled Input to Select Classes or Code

References

Scores

VersionScoreVectorScored by
CVSS 3.1CRITICAL 9.1CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NCISA-ADP
CVSS 3.1CRITICAL 9.1CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NNVD · 134c704f-9b21-4f2e-91b3-4a467353bcc0 (Secondary)

European references

CERT-FR advisories

Affected products

ProductVersions
YAMLaffected 0 < 1.30

Sources

SourceLicence
CVE List (CVEProject cvelistV5)CVE Program Terms of Use
EPSS (FIRST.org)FIRST — attribution requested
ENISA EUVDENISA — reproduction authorised, source acknowledged
CERT-FR (ANSSI)Licence Ouverte / Etalab 2.0
NVD (NIST) via fkie-cad/nvd-json-data-feedsPublic domain — this product uses data from the NVD API but is not endorsed or certified by the NVD