CVE-2019-20477

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…

published February 19, 2020

CVSS
—
EPSS
5%
Percentile
92.3
In the wild
Unconfirmed
What it is

⚠️ In PyYAML versions 5.1 to 5.1.2, a sneaky class deserialization flaw could let attackers execute unexpected commands — it’s like a delivery service misinterpreting an order and delivering the wrong package straight to your doorstep! 📦 Think of this vulnerability as a restaurant that accepts any order without verifying what's on the ticket. If the chef isn’t careful, they might whip up an unexpected dish that wasn't even requested! If exploited, an attacker could use this flaw to run arbitrary code on the server, potentially leading to unauthorized access or data loss. This is not just a kitchen mishap; it could serve up critical vulnerabilities that put your entire application at risk. 😨

Put simply

Think of this vulnerability as a restaurant that accepts any order without verifying what's on the ticket. If the chef isn’t careful, they might whip up an unexpected dish that wasn't even requested! This vulnerability arises from insufficient restrictions in the load and load_all functions of PyYAML, allowing attackers to leverage class deserialization issues. Specifically, this means that objects like Popen from the subprocess module could be misused, leading to arbitrary code execution.

What to do

If exploited, an attacker could use this flaw to run arbitrary code on the server, potentially leading to unauthorized access or data loss. This is not just a kitchen mishap; it could serve up critical vulnerabilities that put your entire application at risk. 😨 To mitigate this risk, update PyYAML to version 5.1.3 or later, where this issue has been addressed. Additionally, review your code for any use of the load and load_all functions and ensure they’re not handling untrusted input. 🛡️ You've got this! By updating and reviewing your code, you're taking the reins to secure your application. 🚀

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.05114 · 92.3th percentile
Published
2020-02-19T03:09Z
EPSS history
Timeline
  • 19 FEB 03:09Z
    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…
    cvelistv5