Vulnerability · Published Nov 21, 2020 · Assigned by mitre
CVE-2020-28975
High 7.5
In plain English
A high-severity security flaw in the scikit-learn package (PyPI). Proof-of-concept exploit code is public. The chance it is exploited in the next 30 days is estimated at 3.5% (higher than 89% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.
Official description
svm_predict_values in svm.cpp in Libsvm v324, as used in scikit-learn 0.23.2 and other products, allows attackers to cause a denial of service (segmentation fault) via a crafted model SVM (introduced via pickle, json, or any other model permanence standard) with a large value in the _n_support array. NOTE: the scikit-learn vendor's position is that the behavior can only occur if the library's API is violated by an application that changes a private attribute.
Affected packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| PyPI | scikit-learn | 1.0.1 | GHSA-jxfp-4rvq-9h9m |
| PyPI | scikit-learn | 0.24.dev0 | PYSEC-2020-108 |
Affected products (as reported)
References
- https://github.com/scikit-learn/scikit-learn/issues/18891
- https://github.com/cjlin1/libsvm/blob/9a3a9708926dec87d382c43b203f2ca19c2d56a0/svm.cpp#L2501
- 20201130 scikit-learn 0.23.2 Local Denial of Service mailing-list
- http://packetstormsecurity.com/files/160281/SciKit-Learn-0.23.2-Denial-Of-Service.html
- https://github.com/scikit-learn/scikit-learn/commit/1bf13d567d3cd74854aa8343fd25b61dd768bb85
- GLSA-202301-03 vendor-advisory