Skip to content
Fencer Vulns
critical 9.8

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-pyyaml
    affected: 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 more
    fixed: 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.el7pc
    fixed: 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) PyYAML
    +5 more products
    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
    not affected: vulnerable code not present

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

Sources

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.