Every CVE Search/ Get API key

CVE-2020-13092

scikit-learn Deserialization of Untrusted Data

9.8 CriticalFix availableDisputed

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

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

3.47%Up 2.4 points since Apr 14, 2021
90%50%10%1%

What each source reports

NVD Score used 9.8

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

Record
CVE-2020-13092
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 2.0
7.5 HighAV:N/AC:L/Au:N/C:P/I:P/A:P
Weakness
CWE-502
Updated
2026-11-02
CVE List No score

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

Record
CVE-2020-13092
Updated
2026-11-02
EUVDEUVD-2020-0179 No score

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

Record
EUVD-2020-0179
Updated
2026-11-03
GitHub AdvisoriesGHSA-jjw5-xxj6-pcv5 9.8

scikit-learn Deserialization of Untrusted Data

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.

Record
GHSA-jjw5-xxj6-pcv5
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-502
Updated
2026-11-02
OSV 9.8

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

Record
CVE-2020-13092
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVDEBIAN-CVE-2020-13092 9.8

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

Record
DEBIAN-CVE-2020-13092
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVGHSA-jjw5-xxj6-pcv5 9.8

scikit-learn Deserialization of Untrusted Data

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.

Record
GHSA-jjw5-xxj6-pcv5
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-502
Updated
2026-11-02
OSVPYSEC-2020-107 No score

** DISPUTED ** 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.

Record
PYSEC-2020-107
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
scikit-learn
PyPI
through 0.23.0 None known
scikit-learn
Debian:12
All versions, plus listed versions
1.2.1+dfsg-11.4.1.post1+dfsg-11.4.2+dfsg-11.4.2+dfsg-21.4.2+dfsg-3
Show 16 moreShow less
1.4.2+dfsg-41.4.2+dfsg-51.4.2+dfsg-61.4.2+dfsg-71.4.2+dfsg-81.7.2+dfsg-11.7.2+dfsg-21.7.2+dfsg-31.7.2+dfsg-41.8.0+dfsg-11.8.0+dfsg-21.8.0+dfsg-31.8.0+dfsg-41.8.0+dfsg-51.9.0+dfsg-11.9.0+dfsg-2
None known
scikit-learn
Debian:13
All versions, plus listed versions
1.4.2+dfsg-81.7.2+dfsg-11.7.2+dfsg-21.7.2+dfsg-31.7.2+dfsg-4
Show 7 moreShow less
1.8.0+dfsg-11.8.0+dfsg-21.8.0+dfsg-31.8.0+dfsg-41.8.0+dfsg-51.9.0+dfsg-11.9.0+dfsg-2
None known
scikit-learn
Debian:14
All versions, plus listed versions
1.4.2+dfsg-81.7.2+dfsg-11.7.2+dfsg-21.7.2+dfsg-31.7.2+dfsg-4
Show 7 moreShow less
1.8.0+dfsg-11.8.0+dfsg-21.8.0+dfsg-31.8.0+dfsg-41.8.0+dfsg-51.9.0+dfsg-11.9.0+dfsg-2
None known
scikit-learn
PyPI
through 0.23.0, plus listed versions
0.100.110.120.12.10.13
Show 30 moreShow less
0.13.10.140.14.10.15.00.15.10.15.20.16.00.16.10.170.17.10.180.18.10.18.20.19.00.19.10.19.20.20.00.20.10.20.20.20.30.20.40.21.00.21.10.21.20.21.30.220.22.10.22.20.22.2.post10.9
None known
scikit-learn
PyPI
before 0.23.1, plus listed versions
0.100.110.120.12.10.13
Show 43 moreShow less
0.13.10.140.14.10.14a10.15.00.15.0b10.15.0b20.15.10.15.20.16.00.16.10.16b10.170.17.10.17b10.180.18.10.18.20.18rc20.19.00.19.10.19.20.19b20.20.00.20.10.20.20.20.30.20.40.20rc10.21.00.21.10.21.20.21.30.21rc20.220.22.10.22.20.22.2.post10.22rc2.post10.22rc30.23.00.23.0rc10.9
0.23.1

History

History
RecordedChangedSources
aliasesEUVD
first indexedCVE List, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2020-13092 is a critical vulnerability (CVSS 9.8) in Scikit-learn, published May 15, 2020. Its validity is disputed. EPSS puts the chance of exploitation in the next 30 days at 3.47%, the 89th percentile. Fixed in scikit-learn 0.23.1.

References

MoveEnter Open