Skip to content
Fencer Vulns
high 7.5

CVE-2020-28975 json

scikit-learn Denial of Service

published 2020-11-21 5 y ago modified 2026-06-17 4 mo 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

CISA SSVC

Exploitation
Proof of concept is public
Automatable
no
Technical impact
partial
Assessed
2 y ago

Exploit prediction

3.57% chance of exploitation in the next 30 days, higher than 89% of all scored CVEs (FIRST EPSS, 2026-11-08).

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

Sources

Fencer Vulns 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.