CVE-2020-13092 scikit-learn Deserialization of Untrusted Data

Critical 9.8 Published Updated

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.

PackageAffectedFixed in
scikit-learn PyPIAll versions to 0.23.0None
scikit-learn PyPIAll versions to 0.23.0None
scikit-learn PyPIAll versions0.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.

Sources

Also known as DEBIAN-CVE-2020-13092, GHSA-jjw5-xxj6-pcv5, PYSEC-2020-107.

Is CVE-2020-13092 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free