CVE-2020-14343
PyYAML: incomplete fix for CVE-2020-1747
Severity
ModerateRed Hat Product Security
CVSS 3.1
Review impact separately from score.
Published · July 22, 2020
Updated · June 28, 2026
Description
A vulnerability was discovered in the PyYAML library, where it is susceptible to arbitrary code execution when it processes untrusted YAML files through the full_load method or with the FullLoader loader. Applications that use the library to process untrusted input may be vulnerable to this flaw. This flaw allows an attacker to execute arbitrary code on the system by abusing the python/object/new constructor. This flaw is due to an incomplete fix for CVE-2020-1747.
Statement
This CVE has already been fixed in RHEL-9 with initial release of PyYaml v5.4-1.
Ansible Tower 3.7 uses affected version of PyYAML 3.12 from RHEL, but the use of load() is specified with a SafeLoader when it is called. So Ansible Tower and Ansible Engine are not affected.
Red Hat Quay, from version 3.4 uses the safe_load function which is not affected by this issue. See [1].
Even though the CVSSv3 for this flaw is 9.8, the Impact has been set to Moderate because PyYAML provides a specific method to deal with untrusted input, which is yaml.safe_load. yaml.safe_load or the SafeLoader loader should be used whenever the input YAML can be modified by a malicious user.
[1] https://github.com/quay/quay/pull/603
CVSS score applicability
The CVSS score(s) listed for this vulnerability do not reflect the associated product's status, and are included for informational purposes to better understand the severity of this vulnerability.
Mitigation
Use yaml.safe_load or the SafeLoader loader when you parse untrusted input.
CVSS / CWE
CVSS 3.1 · 9.8CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CWE-20 · Improper Input Validation