CVE-2020-14343 json
Improper Input Validation in PyYAML
published 2021-02-09 5 y ago modified 2026-06-17 4 mo ago also GHSA-8q59-q68h-6hv4 , PYSEC-2021-142 , EUVD-2021-0216
- cvss
- 9.8
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 6.2%
- EPSS 6.2% chance of exploitation in 30 days, percentile 93%
- public exploits
- 0
- none known
Summary
A vulnerability was discovered in the PyYAML library in versions before 5.4, 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.
Patch / fix
- pypi pyyaml 5.4
- pyyaml pyyaml 5.4
- pyyaml Debian 14, Debian 13, Debian 12 5.3.1-4
debian advisories DEBIAN-CVE-2020-14343
- pyyaml Ubuntu 20.04 LTS 5.3.1-1ubuntu0.1
ubuntu advisories UBUNTU-CVE-2020-14343
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
- foreman satellite capsule 6.10, satellite 6.10 2.5.2.17-2.el7sat
- candlepin satellite 6.10 4.0.9-1.el7sat
- satellite satellite capsule 6.10, satellite 6.10 6.10.0-3.el7sat
- python-ecdsa satellite capsule 6.10, satellite 6.10 0.13.3-2.el7pc
- python-pyyaml satellite capsule 6.10, satellite 6.10 5.4.1-1.el7pc
- python3-ecdsa satellite capsule 6.10, satellite 6.10 0.13.3-2.el7pc
- python-aiohttp satellite capsule 6.10, satellite 6.10 3.7.4-1.el7pc
- python-urllib3 satellite capsule 6.10, satellite 6.10 1.26.5-1.el7pc
red hat advisories RHSA-2021:4702RHSA-2021:2583
- python3-PyYAML SLES LTSS Extended Security 12 SP5, SLES 12 SP5-LTSS, SLE Module for Public Cloud 12 5.3.1-32.1
- python-PyYAML SLE Module for Containers 12, SLE Module for Advanced Systems Management 12, Manager Client Tools 12 5.1.2-26.15.1
- python-PyYAML SLES for SAP 15, SLES 15-LTSS, SLE Module for Public Cloud 15 +2 more 5.1.2-150000.3.6.1
- python-PyYAML SLES for SAP 12 SP5, SLES for SAP 12 SP4, SLES for SAP 12 SP3 +11 more 5.3.1-28.6.1
- azure-cli SLE Module for Public Cloud 15 SP2, SLE Module for Public Cloud 15 SP1 2.14.2-6.4.1
- python-scp SLE Module for Public Cloud 15 SP2, SLE Module for Public Cloud 15 SP1, SLE Module for Package Hub 15 SP2 0.13.2-5.4.1
- python-six SLES for SAP 15 SP1, SLES 15 SP1-LTSS, SLES 15 SP1-BCL +6 more 1.14.0-7.3.1
- python-adal SLES for SAP 15 SP1, SLES 15 SP1-LTSS, SLES 15 SP1-BCL +10 more 1.2.4-7.4.1
suse advisories SUSE-SU-2026:4402-1SUSE-SU-2022:3231-1SUSE-SU-2022:2841-1SUSE-SU-2021:2818-1SUSE-RU-2021:0985-1
- python-PyYAML openSUSE Tumbleweed 6.0.3-1.6
- python-PyYAML openSUSE Tumbleweed 6.0.1-4.1
- oci-cli openSUSE Tumbleweed 3.0.2-1.2
- python-PyYAML openSUSE Tumbleweed 5.4.1-1.6
opensuse advisories openSUSE-SU-2026:11996-1openSUSE-SU-2024:14089-1openSUSE-SU-2024:11108-1openSUSE-SU-2024:11210-1
- python38-py AlmaLinux 8 1.8.0-8.module_el8.4.0+2510+cb4d423d
- python38-py AlmaLinux 8 1.8.0-8.module_el8.6.0+2778+cd494b30
- python38-ply AlmaLinux 8 3.11-10.module_el8.6.0+2778+cd494b30
- python38-six AlmaLinux 8 1.12.0-10.module_el8.6.0+2778+cd494b30
- python38-cffi AlmaLinux 8 1.13.2-3.module_el8.6.0+2778+cd494b30
- python38-idna AlmaLinux 8 2.8-6.module_el8.6.0+2778+cd494b30
- python38-pytz AlmaLinux 8 2019.3-3.module_el8.6.0+2778+cd494b30
- python38-attrs AlmaLinux 8 19.3.0-3.module_el8.6.0+2778+cd494b30
almalinux advisories ALSA-2021:2583
- pytz Rocky Linux 8 2019.3-3.module+el8.4.0+570+c2eaf144
- babel Rocky Linux 8 2.7.0-10.module+el8.4.0+570+c2eaf144
- numpy Rocky Linux 8 1.17.3-5.module+el8.4.0+570+c2eaf144
- scipy Rocky Linux 8 1.3.1-4.module+el8.5.0+672+ab6eb015
- scipy Rocky Linux 8 1.3.1-4.module+el8.4.0+570+c2eaf144
- Cython Rocky Linux 8 0.29.14-4.module+el8.4.0+570+c2eaf144
- pytest Rocky Linux 8 4.6.6-3.module+el8.4.0+570+c2eaf144
- PyYAML Rocky Linux 8 5.4.1-1.module+el8.5.0+672+ab6eb015
rocky linux advisories RLSA-2021:2583
- py3-yaml Alpine 3.12, Alpine 3.11 5.3.1-r1
- py3-yaml Alpine 3.13 5.3.1-r2
- py3-yaml Alpine 3.24, Alpine 3.23, Alpine 3.22 +8 more 5.4-r0
alpine advisories ALPINE-CVE-2020-14343
Alpine secdb © Alpine Linux, from https://secdb.alpinelinux.org via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- PyYAML CBL-Mariner 2.0 5.4.1-1
azure linux advisories AZL-31782
Azure Linux vulnerability data, Copyright (c) Microsoft Corporation, from https://github.com/microsoft/AzureLinuxVulnerabilityData via OSV, under the MIT licence; changed: normalised to fixed package versions per release. MIT
- python-yaml Arch Linux 5.4.1.1-1
arch linux advisories AVG-1459
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-2020-14343 updated cvss 9.8
PyYAML: incomplete fix for CVE-2020-1747
-
Red Hat Software Collections rh-python38-python-pyyamlaffected: workaround, no fix planned “Use `yaml.safe_load` or the SafeLoader loader when you parse untrusted input.”
-
Red Hat CodeReady Linux Builder (v. 8) pytest 4.6.6-3.module+el8.4.0+8888+89bc7e79, python-py 1.8.0-8.module+el8.4.0+8888+89bc7e79, python38-py 1.8.0-8.module+el8.4.0+8888+89bc7e79, python-attrs 19.3.0-3.module+el8.4.0+8888+89bc7e79, python-pluggy 0.13.0-3.module+el8.4.0+8888+89bc7e79, python-packaging 19.2-3.module+el8.4.0+8888+89bc7e79, +12 more Red Hat Enterprise Linux AppStream (v. 8) pytz 2019.3-3.module+el8.4.0+8888+89bc7e79, scipy 1.3.1-4.module+el8.4.0+8888+89bc7e79, babel 2.7.0-10.module+el8.4.0+8888+89bc7e79, numpy 1.17.3-5.module+el8.4.0+8888+89bc7e79, PyYAML 5.4.1-1.module+el8.4.0+10706+5c295a3e, Cython 0.29.14-4.module+el8.4.0+8888+89bc7e79, +59 morefixed: vendor fix “Use `yaml.safe_load` or the SafeLoader loader when you parse untrusted input.” RHSA-2021:2583
-
Red Hat Satellite 6.10 python-pyyaml 5.4.1-1.el7pc, python3-pyyaml 5.4.1-1.el7pc Red Hat Satellite Capsule 6.10 python-pyyaml 5.4.1-1.el7pc, python3-pyyaml 5.4.1-1.el7pcfixed: vendor fix “Use `yaml.safe_load` or the SafeLoader loader when you parse untrusted input.” RHSA-2021:4702
-
Red Hat Ansible Tower 3 PyYAML, python3-PyYAML Red Hat Enterprise Linux 6 PyYAML Red Hat Enterprise Linux 7 PyYAML Red Hat Enterprise Linux 8 PyYAML, python2-pyyaml, python38-pyyaml, python39-pyyaml Red Hat Enterprise Linux 9 python3-pyyaml Red Hat OpenStack Platform 10 (Newton) PyYAMLnot affected: vulnerable code not present
+5 more productsfewer
Red Hat OpenStack Platform 13 (Queens) PyYAML Red Hat Quay 3 quay Red Hat Satellite 6.10 tfm 7.0-1.el7sat, gofer 2.12.5-7.el7sat, katello 4.1.1-2.el7sat, libsolv 0.7.20-1.el7pc, receptor 0.6.4-2.el7ar, libcomps 0.1.15-1.el7pc, +580 more Red Hat Satellite Capsule 6.10 tfm 7.0-1.el7sat, katello 4.1.1-2.el7sat, libsolv 0.7.20-1.el7pc, libcomps 0.1.15-1.el7pc, python-rq 1.8.1-1.el7pc, python-idna 2.10-1.el7pc, +353 more Red Hat Software Collections python27-PyYAML, rh-python36-PyYAML
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
Exploit prediction
6.24% chance of exploitation in the next 30 days, higher than 93% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| NVD | 3.1 | 9.8 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| NVD | 2.0 | 10.0 | AV:N/AC:L/Au:N/C:C/I:C/A:C |
| GitHub | 3.1 | 9.8 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | pyyaml | <5.4 |
5.4 |
Affected products
- n/a PyYAML
Classification
- Weakness
-
- CWE-20 Improper Input Validation
References
-
oracle.com
/security-alerts/cpuapr2022.html
web, patch, third-party-advisory
-
oracle.com
/security-alerts/cpujul2022.html
web, patch, third-party-advisory
-
github.com
/yaml/pyyaml/commit/a001f2782501ad2d24986959f0239a354675f9dc
web
-
github.com
/yaml/pyyaml/issues/420
web
-
bugzilla.redhat.com
/show_bug.cgi?id=1860466
web, issue-tracking, third-party-advisory, report
-
github.com
/SeldonIO/seldon-core/issues/2252
web
-
nvd.nist.gov
/vuln/detail/CVE-2020-14343
advisory
-
github.com
/yaml/pyyaml/issues/420#issuecomment-663673966
web
-
github.com
/advisories/GHSA-8q59-q68h-6hv4
advisory
-
github.com
/pypa/advisory-database/tree/main/vulns/pyyaml/PYSEC-2021-142.yaml
web
-
github.com
/yaml/pyyaml
package
-
pypi.org
/project/PyYAML
web
Sources
- CVE List CVE-2020-14343
- GitHub Advisory GHSA-8q59-q68h-6hv4
- NVD CVE-2020-14343
- OSV PYSEC-2021-142
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.