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
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | scikit-learn | No fix yet | — |
| Debian 13 | scikit-learn | No fix yet | — |
| Debian 12 | scikit-learn | No fix yet | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| PyPI | scikit-learn | <= 0.23.0 | — | GHSA-jjw5-xxj6-pcv5 |
| PyPI | scikit-learn | < 0.23.1 | 0.23.1 | PYSEC-2020-107 |