CVE-2020-13091

pandas through 1.0.3 can unserialize and execute commands from an untrusted file that is passed to the read_pickle() function, if __reduce__ makes an os.system…

published May 15, 2020

CVSS
—
EPSS
4%
Percentile
89.1
In the wild
Unconfirmed
What it is

⚠️ A seemingly innocent call to read_pickle() can execute commands from untrusted files! 🚨 This vulnerability in pandas through version 1.0.3 is like letting a stranger pick your groceries without checking what's in the bag! Think of it like allowing someone to run your dishwasher without checking if they’ve stuffed in a load of dirty socks instead of dishes. If they sneak in a script that calls os.system, you’re going to end up with a messy disaster! An attacker could take advantage of this flaw to run arbitrary commands on your system, potentially leading to unauthorized access or data manipulation. While this issue has been disputed, it’s critical to understand the underlying risks—especially if users aren’t aware of the unsafe nature of read_pickle().

Put simply

Think of it like allowing someone to run your dishwasher without checking if they’ve stuffed in a load of dirty socks instead of dishes. If they sneak in a script that calls os.system, you’re going to end up with a messy disaster! This vulnerability arises from how pandas unserializes objects through read_pickle(), particularly when the __reduce__ method includes an os.system call, which can execute shell commands in an insecure manner.

What to do

An attacker could take advantage of this flaw to run arbitrary commands on your system, potentially leading to unauthorized access or data manipulation. While this issue has been disputed, it’s critical to understand the underlying risks—especially if users aren’t aware of the unsafe nature of read_pickle(). To safeguard against this, avoid using read_pickle() with untrusted files. Instead, use safer alternatives like read_csv() or ensure strict file validation before processing pickled files. Keeping pandas updated is also essential—check for versions beyond 1.0.3. You’ve got this! By following these steps, you can stay secure and keep your data protected! 🛡️

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.03507 · 89.1th percentile
Published
2020-05-15T18:41Z
EPSS history
Timeline
  • 15 MAY 18:41Z
    pandas through 1.0.3 can unserialize and execute commands from an untrusted file that is passed to the read_pickle() function, if __reduce__ makes an os.system…
    cvelistv5