CVE-2020-28975 scikit-learn Denial of Service
Attackers can cause a segmentation fault and denial of service in Libsvm by providing a crafted model with large support values.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2020-28975?
CVE-2020-28975 is a high-severity denial of service vulnerability in n/a, published on 21 Nov 2020. An attacker can exploit it over the internet without logging in, with no action from the victim.
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.
Which versions are affected by CVE-2020-28975?
3 open source packages ship an affected version, including scikit-learn. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
scikit-learn PyPI | All versions | 0.24.dev0 |
scikit-learn PyPI | From 0.23.2 | 1.0.1 |
scikit-learn PyPI | From 0.23.2 | 1.0.1 |
Linux distribution packages (1)
python-scikit-learn openSUSE:Tumbleweed | All versions | 1.6.1-1.1 |
Products include Scikit-Learn Scikit-Learn.
How do I fix CVE-2020-28975?
Upgrade scikit-learn to a fixed version for your release line: 0.24.dev0 or 1.0.1.
Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.
Is CVE-2020-28975 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2020-28975 exists.
Other vulnerabilities in n/a
Sources
Also known as GHSA-jxfp-4rvq-9h9m, PYSEC-2020-108, openSUSE-SU-2024:11805-1, openSUSE-SU-2025:14729-1.