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
References (2)
Core 2
Core References
Exploit, Third Party Advisory x_refsource_misc
https://github.com/0FuzzingQ/vuln/blob/master/sklearn%20unserialize.md
Third Party Advisory x_refsource_misc
https://scikit-learn.org/stable/modules/model_persistence.html#security-maintainability-limitations
Scores
CVSS v3
9.8
EPSS
0.0265
EPSS Percentile
83.7%
Attack Vector
NETWORK
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Details
CWE
CWE-502
Status
published
Products (2)
pypi/scikit-learn
0PyPI
scikit-learn/scikit-learn
< 0.23.0
Published
May 15, 2020
Tracked Since
Feb 18, 2026