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.
Does this matter?
High impact if exploited, but EPSS currently rates exploitation as unlikely (2.67%). Schedule it in the normal patch cycle and watch for a rise in EPSS or a public exploit.
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
- CVSS 3.1
- 9.8 CRITICALCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- EPSS
- 2.67% probability · 85th percentile
- CISA KEV
- Not listed
- Weakness
- CWE-502
- Affected
- scikit-learn/scikit-learn
- Source
- cve@mitre.org
References
- https://github.com/0FuzzingQ/vuln/blob/master/sklearn%20unserialize.mdExploit, Third Party Advisory
- https://scikit-learn.org/stable/modules/model_persistence.html#security-maintainability-limitationsThird Party Advisory
- https://github.com/0FuzzingQ/vuln/blob/master/sklearn%20unserialize.mdExploit, Third Party Advisory
- https://scikit-learn.org/stable/modules/model_persistence.html#security-maintainability-limitationsThird Party Advisory
Source: NVD record, EPSS from FIRST.org, KEV from CISA. Refreshed daily.