PyPI: scikit-learn
CVE-2020-13092
Safety vulnerability ID: SFTY-20220524-46487
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.
Overview
scikit-learn Deserialization of Untrusted Data
Advisory
scikit-learn Deserialization of Untrusted Data
How to Fix
We recommend updating scikit-learn to the latest non-vulnerable version.
Mitigation and Workarounds
---
Vulnerable Functions
Functions linked to known vulnerabilities.
References
- https://getsafety.com/vulnerabilities/SFTY-20220524-46487/CVE-2020-13092
- https://nvd.nist.gov/vuln/detail/CVE-2020-13092
- https://github.com/0FuzzingQ/vuln/blob/master/sklearn%20unserialize.md
- https://scikit-learn.org/stable/modules/model_persistence.html#security-maintainability-limitations
- https://github.com/pypa/advisory-database/tree/main/vulns/scikit-learn/PYSEC-2020-107.yaml
- https://github.com/advisories/GHSA-jjw5-xxj6-pcv5
Verified by Safety
Our Cybersecurity Intelligence Team reviewed this vulnerability. We combine public data with our own research to find issues not yet reported to public sources.
Learn more
