CVE Vulnerabilities

CVE-2019-20477

Deserialization of Untrusted Data

Published: Feb 19, 2020 | Modified: Nov 21, 2024
CVSS 3.x
9.8
CRITICAL
Source:
NVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 2.x
7.5 HIGH
AV:N/AC:L/Au:N/C:P/I:P/A:P
RedHat/V2
RedHat/V3
9.8 MODERATE
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Ubuntu
LOW
root.io logo minimus.io logo echo.ai logo

PyYAML 5.1 through 5.1.2 has insufficient restrictions on the load and load_all functions because of a class deserialization issue, e.g., Popen is a class in the subprocess module. NOTE: this issue exists because of an incomplete fix for CVE-2017-18342.

Weakness

The product deserializes untrusted data without sufficiently ensuring that the resulting data will be valid.

Affected Software

NameVendorStart VersionEnd Version
PyyamlPyyaml5.1 (including)5.1.2 (including)
Red Hat Enterprise Linux 8RedHatpython38:3.8-8030020200818121840.4190259b*
Red Hat Quay 3RedHatquay/clair-rhel8:v3.4.0-25*
Red Hat Quay 3RedHatquay/quay-bridge-operator-bundle:v3.4.0-3*
Red Hat Quay 3RedHatquay/quay-bridge-operator-rhel8:v3.4.0-17*
Red Hat Quay 3RedHatquay/quay-builder-qemu-rhcos-rhel8:v3.4.0-17*
Red Hat Quay 3RedHatquay/quay-builder-rhel8:v3.4.0-18*
Red Hat Quay 3RedHatquay/quay-container-security-operator-bundle:v3.4.0-2*
Red Hat Quay 3RedHatquay/quay-container-security-operator-rhel8:v3.4.0-2*
Red Hat Quay 3RedHatquay/quay-openshift-bridge-rhel8-operator:v3.4.0-17*
Red Hat Quay 3RedHatquay/quay-operator-bundle:v3.4.0-89*
Red Hat Quay 3RedHatquay/quay-operator-rhel8:v3.4.0-132*
Red Hat Quay 3RedHatquay/quay-rhel8:v3.4.0-51*
PyyamlUbuntueoan*
PyyamlUbuntutrusty*

Potential Mitigations

  • Make fields transient to protect them from deserialization.
  • An attempt to serialize and then deserialize a class containing transient fields will result in NULLs where the transient data should be. This is an excellent way to prevent time, environment-based, or sensitive variables from being carried over and used improperly.

References