CVE-2020-28975 json
scikit-learn Denial of Service
published 5y ago modified 4mo ago also GHSA-jxfp-4rvq-9h9m , PYSEC-2020-108 , EUVD-2020-0180
- cvss
- 7.5
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 3.6%
- EPSS 3.6% chance of exploitation in 30 days, percentile 89%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- pypi scikit-learn 0.24.dev0, 1.0.1
- scikit-learn scikit-learn 1.0.1
- python-scikit-learn openSUSE Tumbleweed 1.6.1-1.1
opensuse advisories openSUSE-SU-2025:14729-1
Is CVE-2020-28975 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 2y ago
Exploit prediction
3.57% chance of exploitation in the next 30 days, higher than 89% of all scored CVEs (FIRST EPSS, 2026-11-09).
Exploits and checks
- github.com https://github.com/scikit-learn/scikit-learn/issues/18891 referenced PoC, tagged "exploit" by a source, unverified
- github.com https://github.com/cjlin1/libsvm/blob/9a3a9708926dec87d382c43b203f2ca19c2d56a0/svm.cpp#L2501 referenced PoC, tagged "exploit" by a source, unverified
- packetstormsecurity.com http://packetstormsecurity.com/files/160281/SciKit-Learn-0.23.2-Denial-Of-Service.html referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| NVD | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
| NVD | 2.0 | 5.0 | AV:N/AC:L/Au:N/C:N/I:N/A:P |
| GitHub | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | scikit-learn | >=0.23.2, <1.0.1 <0.24.dev0 |
1.0.1 0.24.dev0 |
References
-
github.com
/scikit-learn/scikit-learn/commit/1bf13d567d3cd74854aa8343fd25b61dd768bb85
web, patch, third-party-advisory
-
github.com
/scikit-learn/scikit-learn/issues/18891
web, exploit, issue-tracking, third-party-advisory, report
-
github.com
/cjlin1/libsvm/blob/9a3a9708926dec87d382c43b203f2ca19c2d56a0/svm.cpp#L2501
web, exploit, third-party-advisory
-
packetstormsecurity.com
/files/160281/SciKit-Learn-0.23.2-Denial-Of-Service.html
web, exploit, third-party-advisory, vdb-entry
-
security.gentoo.org
/glsa/202301-03
vendor-advisory, web, third-party-advisory
-
seclists.org
/fulldisclosure/2020/Nov/44
mailing-list, web, third-party-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2020-28975
advisory
-
github.com
/pypa/advisory-database/tree/main/vulns/scikit-learn/PYSEC-2020-108.yaml
web
-
github.com
/scikit-learn/scikit-learn
package
-
github.com
/advisories/GHSA-jxfp-4rvq-9h9m
advisory
Sources
- CVE List CVE-2020-28975
- GitHub Advisory GHSA-jxfp-4rvq-9h9m
- NVD CVE-2020-28975
- OSV PYSEC-2020-108
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.