9.8crit

CVE-2017-16616

Unsafe pyyaml load usage in PyAnyAPI

Also known as GHSA-vg8g-jpm9-jh8r, PYSEC-2017-23

Published 8 y ago · modified 4 mo ago · JSON

CVSS
9.8
v3.0 · NVD
CISA KEV
No
not known exploited
EPSS
3.6%
percentile 90%
Public exploits
0
none known

Summary

An exploitable vulnerability exists in the YAML parsing functionality in the YAMLParser method in Interfaces.py in PyAnyAPI before 0.6.1. A YAML parser can execute arbitrary Python commands resulting in command execution because load is used where safe_load should have been used. An attacker can insert Python into loaded YAML to trigger this vulnerability.

Exploit prediction (EPSS)

3.62% probability of exploitation in the next 30 days, higher than 90% of all scored CVEs.

CVSS scores

Assigned byVersionScoreVector
NVD3.09.8CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
NVD2.07.5AV:N/AC:L/Au:N/C:P/I:P/A:P
GitHub3.09.8CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Affected packages

EcosystemPackageAffectedFixed in
pypipyanyapi
<0.6.1
0.6.1

Classification

Weakness
  • CWE-502 Deserialization of Untrusted Data

References

  • joel-malwarebenchmark.github.io /blog/2017/11/08/cve-2017-16616-yamlparser-in-pyanyapi/ · x_refsource_MISC, x_transferred
  • github.com /Stranger6667/pyanyapi/issues/41 · x_refsource_CONFIRM, x_transferred
  • github.com /Stranger6667/pyanyapi/releases/tag/0.6.1 · x_refsource_CONFIRM, x_transferred
  • pypi.python.org /pypi/pyanyapi/0.6.1 · x_refsource_CONFIRM, x_transferred
  • nvd.nist.gov /vuln/detail/CVE-2017-16616 · advisory
  • github.com /Stranger6667/pyanyapi/commit/810db626c18ebc261d5f4299d0f0eac38d5eb3cf · web
  • github.com /Stranger6667/pyanyapi · package
  • github.com /advisories/GHSA-vg8g-jpm9-jh8r · advisory
  • github.com /pypa/advisory-database/tree/main/vulns/pyanyapi/PYSEC-2017-23.yaml · web
  • joel-malwarebenchmark.github.io /blog/2017/11/08/cve-2017-16616-yamlparser-in-pyanyapi · web

Sources

vulnwire keeps one entry per vulnerability: the CVE id wins, then GHSA; records that alias each other are merged. Machine-readable: JSON.