CVE-2020-28975
scikit-learn Denial of Service
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.
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
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
NVD Score used
7.5
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.
- Record
CVE-2020-28975- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - CVSS 2.0
- 5.0 Medium
AV:N/AC:L/Au:N/C:N/I:N/A:P - Updated
- 2026-11-02
CVE List No score
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.
- Record
CVE-2020-28975- Updated
- 2026-11-02
EUVDEUVD-2020-0180 No score
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.
- Record
EUVD-2020-0180- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-jxfp-4rvq-9h9m
7.5
scikit-learn Denial of Service
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.
- Record
GHSA-jxfp-4rvq-9h9m- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSV
7.5
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.
- Record
CVE-2020-28975- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVGHSA-jxfp-4rvq-9h9m
7.5
scikit-learn Denial of Service
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.
- Record
GHSA-jxfp-4rvq-9h9m- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVopenSUSE-SU-2024:11805-1 No score
python310-scikit-learn-1.0.2-1.1 on GA media
These are all security issues fixed in the python310-scikit-learn-1.0.2-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:11805-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2025:14729-1 No score
python311-scikit-learn-1.6.1-1.1 on GA media
These are all security issues fixed in the python311-scikit-learn-1.6.1-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2025:14729-1- Updated
- 2026-11-02
OSVPYSEC-2020-108 No score
** DISPUTED ** 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.
- Record
PYSEC-2020-108- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
scikit-learnPyPI |
0.23.2 up to 1.0.1 | 1.0.1 |
scikit-learnPyPI |
0.23.2 up to 1.0.1, plus listed versions 0.24.00.24.10.24.21.0 |
1.0.1 |
scikit-learnPyPI |
before 0.24.dev0, plus listed versions 0.100.110.120.12.10.13 Show 45 moreShow less0.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.23.10.23.20.9 |
0.24.dev0 |
python-scikit-learnopenSUSE:Tumbleweed |
before 1.6.1-1.1 | 1.6.1-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2020-28975 is a high vulnerability (CVSS 7.5) in Scikit-learn, published November 21, 2020. Its validity is disputed. EPSS puts the chance of exploitation in the next 30 days at 3.57%, the 89th percentile. Fixed in scikit-learn 1.0.1.
References
github.com/scikit-learn/scikit-learn/issues/18891
github.com/cjlin1/libsvm/blob/9a3a9708926dec87d382c43b203f2ca19c2d56a0/svm.cpp
seclists.org/fulldisclosure/2020/Nov/44
packetstormsecurity.com/files/160281/SciKit-Learn-0.23.2-Denial-Of-Service.html
github.com/scikit-learn/scikit-learn/commit/1bf13d567d3cd74854aa8343fd25b61dd768bb85
security.gentoo.org/glsa/202301-03
Show 6 moreShow less
nvd.nist.gov/vuln/detail/CVE-2020-28975
github.com/pypa/advisory-database/tree/main/vulns/scikit-learn/PYSEC-2020-108.yaml
github.com/advisories/GHSA-jxfp-4rvq-9h9m
github.com/scikit-learn/scikit-learn
suse.com/security/cve/CVE-2020-28975
lists.opensuse.org/archives/list/[email protected]/thread/EJHTWDQGPZRAHRN7GOYHIRXAHVB7F7G3