CVE-2020-13092 scikit-learn Deserialization of Untrusted Data
Attackers can execute arbitrary commands via malicious files loaded by scikit-learn's joblib.load function, which is documented as unsafe.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2020-13092?
CVE-2020-13092 is a critical unsafe deserialization vulnerability in n/a, published on 15 May 2020. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
scikit-learn (aka sklearn) through 0.23.0 can unserialize and execute commands from an untrusted file that is passed to the joblib.load() function, if __reduce__ makes an os.system call. NOTE: third parties dispute this issue because the joblib.load() function is documented as unsafe and it is the user's responsibility to use the function in a secure manner
Weakness: CWE-502
Which versions are affected by CVE-2020-13092?
3 open source packages ship an affected version, including scikit-learn. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
scikit-learn PyPI | All versions to 0.23.0 | None |
scikit-learn PyPI | All versions to 0.23.0 | None |
scikit-learn PyPI | All versions | 0.23.1 |
Products include Scikit-Learn Scikit-Learn.
How do I fix CVE-2020-13092?
Upgrade scikit-learn to 0.23.1 or later.
Upgrade, and only deserialise data from trusted sources or with an allow-list of types. More about Unsafe deserialization.
Is CVE-2020-13092 being exploited?
There is no known exploitation of CVE-2020-13092 in the wild and no public exploit code.
Other vulnerabilities in n/a
Sources
Also known as DEBIAN-CVE-2020-13092, GHSA-jjw5-xxj6-pcv5, PYSEC-2020-107.