Deserialization in Scikit-Learn
CVE-2020-13092
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
Vulnerability class: Insecure Deserialization
Published · last modified .
CVSS v3 metric
CVSS v3 base score 9.8 (Critical). Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H.
EPSS exploit prediction
EPSS: 0.034 (88.7th percentile), scored .
Low probability of exploitation in the next 30 days, but still tracked. 89th percentile — 88.7% of CVEs in the catalogue have a lower EPSS than this one. How to read EPSS.
EPSS over last 30 days · oldest: 0.027 · newest: 0.034 · change: +0.007
Affected products
Weakness classification (CWE)
References
- github.com/0FuzzingQ/vuln/blob/master/sklearn unserialize.md (Exploit, Third Party Advisory)
- scikit-learn.org/stable/modules/model_persistence.html (Third Party Advisory)
Frequently asked questions
- What is CVE-2020-13092?
- CVE-2020-13092 is a critical-severity vulnerability in Scikit-Learn, classified under Deserialization of Untrusted Data. CVSS score: 9.8/10. Published 2020-05-15.
- How severe is CVE-2020-13092?
- Critical severity. CVSS v3 base score is 9.8 out of 10.