Vulnerability Database · PyPI · Package report

scikit-learn: vulnerability history, versions and safety

scikit-learn is a package in the PyPI ecosystem. Vulert records 6 vulnerabilities for it across 120 releases, from May 2020 to Jun 2024. Each vulnerability names the versions it affects, the fixed version to move to, and a workaround where no fix has been published.

i
6 vulnerabilities recorded C1 H1 M1 U3
i
1 with no fix published

No patched version yet — these are the ones to plan around.

See the unfixed vulnerabilities →
i
0 in the last 12 months

Nothing new recorded in the last year.

See the disclosure history →
i
0 malicious-package vulnerabilities

No published version shipped hostile code.

Vulert verdict on scikit-learn 1.9.1 i

Updated on 23 Oct 2026

Careful: 1.9.1 has 2 known vulnerabilities, and 1 has no fix yet. Use an earlier safe version, or the workaround listed for each one.

Package health score 60/100
  • Security Minor issues
  • Maintenance Sustainable
  • Popularity Key ecosystem project
  • Community Moderate

The current release has a vulnerability with no published fix, which caps this score.

What to do: Pin an earlier, unaffected release if you can, and apply the workaround each vulnerability lists until a fix is published. No fix yet: Vulert alerts you the moment one is published. Monitor it with Vulert →

  • Current release 1.9.1 — affected i
  • Vulnerabilities on record 6 over 4 years · 0 in the last year i
  • Latest disclosure 06 Jun 2024 i
  • Highest CVSS 9.8 i
  • With no published fix 1 i
  • Depended on by 32,483 packages i
  • Stars 67,843 i
  • OpenSSF scorecard 5/10 i
  • Last release 1 month ago i
  • Licence BSD-3-Clause i

Version list, release dates, licence and dependants published by PyPI, refreshed 23 Oct 2026. Licence information is not legal advice.

Concerned about your application's security?

Vulert continues monitoring your dependencies and alerts you when new vulnerabilities are disclosed. No installation and no source-code access required.

01 Versions

Which versions are affected

Every version Vulert tracks for scikit-learn, newest first, with the vulnerabilities recorded against each one. A version showing none has no vulnerability in the Vulert database — open it for the full picture on that release.

i
Version Released Vulert vulnerabilities Licence Fix published Details
1.9.1 10 Sep 2026 C1 U1 BSD-3-Clause No Details →
1.9.0 02 Jun 2026 C1 U1 BSD-3-Clause No Details →
1.9.0rc1 20 May 2026 C1 U1 BSD-3-Clause No Details →
1.8.0 10 Dec 2025 C1 U1 BSD-3-Clause No Details →
1.8.0rc1 26 Nov 2025 C1 U1 BSD-3-Clause No Details →
1.7.2 09 Sep 2025 C1 U1 BSD-3-Clause No Details →
1.7.1 18 Jul 2025 C1 U1 BSD-3-Clause No Details →
1.7.0 05 Jun 2025 C1 U1 non-standard No Details →
1.7.0rc1 09 May 2025 C1 U1 non-standard No Details →
1.6.1 10 Jan 2025 C1 U1 non-standard No Details →
1.6.0 09 Dec 2024 C1 U1 non-standard No Details →
1.6.0rc1 15 Nov 2024 C1 U1 non-standard No Details →
1.5.2 02 Oct 2024 C1 U1 non-standard No Details →
1.5.1 03 Jul 2024 C1 U1 non-standard No Details →
1.5.0 21 May 2024 C1 U1 non-standard No Details →
1.5.0rc1 06 May 2024 M1 U1 non-standard Yes Details →
1.4.2 09 Apr 2024 M1 U1 non-standard Yes Details →
1.4.1.post1 16 Feb 2024 M1 U1 non-standard Yes Details →
1.4.0 18 Jan 2024 M1 U1 non-standard Yes Details →
1.4.0rc1 20 Dec 2023 M1 U1 non-standard Yes Details →
1.3.2 23 Oct 2023 M1 U1 non-standard Yes Details →
1.3.1 03 Oct 2023 M1 U1 non-standard Yes Details →
1.3.0 30 Jun 2023 M1 U1 non-standard Yes Details →
1.3.0rc1 15 Jun 2023 M1 U1 non-standard Yes Details →
1.2.2 09 Mar 2023 M1 U1 non-standard Yes Details →
1.2.1 24 Jan 2023 M1 U1 non-standard Yes Details →
1.2.0 08 Dec 2022 M1 U1 non-standard Yes Details →
1.2.0rc1 28 Nov 2022 M1 U1 non-standard Yes Details →
1.1.3 26 Oct 2022 M1 U1 non-standard Yes Details →
1.1.2 05 Aug 2022 M1 U1 non-standard Yes Details →
1.1.1 19 May 2022 M1 U1 non-standard Yes Details →
1.1.0 12 May 2022 M1 U1 non-standard Yes Details →
1.0.2 25 Dec 2021 M1 U1 non-standard Yes Details →
1.0.1 25 Oct 2021 M1 U1 non-standard Yes Details →
1.0.0 24 Sep 2021 C1 H1 M1 U1 non-standard No Details →
0.24.2 28 Apr 2021 H1 M1 U1 non-standard Yes Details →
0.24.1 19 Jan 2021 H1 M1 U1 non-standard Yes Details →
0.24.0 22 Dec 2020 H1 M1 U1 non-standard Yes Details →
0.23.2 04 Aug 2020 H1 M1 U2 non-standard Yes Details →
0.23.1 19 May 2020 M1 U2 non-standard Yes Details →
0.23.0 12 May 2020 C1 M1 U3 non-standard No Details →
0.22.2.post1 04 Mar 2020 C1 M1 U3 non-standard No Details →
0.22.2 28 Feb 2020 C1 M1 U3 non-standard No Details →
0.22.1 02 Jan 2020 C1 M1 U3 non-standard No Details →
0.22.0 03 Dec 2019 C1 M1 U3 non-standard No Details →
0.21.3 30 Jul 2019 C1 M1 U3 non-standard No Details →
0.20.4 30 Jul 2019 C1 M1 U3 non-standard No Details →
0.21.2 24 May 2019 C1 M1 U3 non-standard No Details →
0.21.1 15 May 2019 C1 M1 U3 non-standard No Details →
0.21.0 10 May 2019 C1 M1 U3 non-standard No Details →
0.20.3 01 Mar 2019 C1 M1 U3 non-standard No Details →
0.20.2 19 Dec 2018 C1 M1 U3 non-standard No Details →
0.20.1 23 Nov 2018 C1 M1 U3 non-standard No Details →
0.20.0 26 Sep 2018 C1 M1 U3 non-standard No Details →
0.19.2 15 Jul 2018 C1 M1 U3 non-standard No Details →
0.19.1 23 Oct 2017 C1 M1 U3 non-standard No Details →
0.19.0 11 Aug 2017 C1 M1 U3 non-standard No Details →
0.18.2 21 Jun 2017 C1 M1 U3 non-standard No Details →
0.18.1 13 Nov 2016 C1 M1 U3 non-standard No Details →
0.18.0 28 Sep 2016 C1 M1 U3 non-standard No Details →
0.17.1 18 Feb 2016 C1 M1 U3 non-standard No Details →
0.17.0 05 Nov 2015 C1 M1 U3 non-standard No Details →
0.16.1 14 Apr 2015 C1 M1 U3 non-standard No Details →
0.16.0 27 Mar 2015 C1 M1 U3 non-standard No Details →
0.15.2 06 Sep 2014 C1 M1 U3 non-standard No Details →
0.15.1 01 Aug 2014 C1 M1 U3 non-standard No Details →
0.15.0 15 Jul 2014 C1 M1 U3 non-standard No Details →
0.14.0 09 Aug 2013 C1 M1 U3 non-standard No Details →
0.14.1 09 Aug 2013 C1 M1 U3 non-standard No Details →
0.13.1 23 Feb 2013 C1 M1 U3 non-standard No Details →
0.13.0 21 Jan 2013 C1 M1 U3 non-standard No Details →
0.12.1 08 Oct 2012 C1 M1 U3 non-standard No Details →
0.12.0 04 Sep 2012 C1 M1 U3 non-standard No Details →
0.11.0 08 May 2012 C1 M1 U3 non-standard No Details →
0.10.0 11 Jan 2012 C1 M1 U3 non-standard No Details →
0.9.0 22 Sep 2011 C1 M1 U3 non-standard No Details →
0.10.win32-py2.6 — C1 M1 U3 — No Details →
0.10.win32-py2.7 — C1 M1 U3 — No Details →
0.11.win32-py2.6 — C1 M1 U3 — No Details →
0.11.win32-py2.7 — C1 M1 U3 — No Details →
0.12.1.win32-py2.6 — C1 M1 U3 — No Details →
0.12.1.win32-py2.7 — C1 M1 U3 — No Details →
0.12.win32-py2.6 — C1 M1 U3 — No Details →
0.12.win32-py2.7 — C1 M1 U3 — No Details →
0.13.1.win32-py2.6 — C1 M1 U3 — No Details →
0.13.1.win32-py2.7 — C1 M1 U3 — No Details →
0.13.win32-py2.6 — C1 M1 U3 — No Details →
0.13.win32-py2.7 — C1 M1 U3 — No Details →
0.14.1.win32-py2.6 — C1 M1 U3 — No Details →
0.14.1.win32-py2.7 — C1 M1 U3 — No Details →
0.14.1.win32-py3.3 — C1 M1 U3 — No Details →
0.15.0.win-amd64-py2.7 — C1 M1 U3 — No Details →
0.15.0.win-amd64-py3.4 — C1 M1 U3 — No Details →
0.15.0.win32-py2.7 — C1 M1 U3 — No Details →
0.15.0.win32-py3.4 — C1 M1 U3 — No Details →
0.15.1.win-amd64-py2.7 — C1 M1 U3 — No Details →
0.15.1.win-amd64-py3.4 — C1 M1 U3 — No Details →
0.15.1.win32-py2.7 — C1 M1 U3 — No Details →
0.15.1.win32-py3.4 — C1 M1 U3 — No Details →
0.15.2.win-amd64-py2.7 — C1 M1 U3 — No Details →
0.15.2.win-amd64-py3.4 — C1 M1 U3 — No Details →
0.15.2.win32-py2.7 — C1 M1 U3 — No Details →
0.15.2.win32-py3.4 — C1 M1 U3 — No Details →
0.16.0.win-amd64-py2.7 — C1 M1 U3 — No Details →
0.16.0.win-amd64-py3.4 — C1 M1 U3 — No Details →
0.16.0.win32-py2.7 — C1 M1 U3 — No Details →
0.16.0.win32-py3.4 — C1 M1 U3 — No Details →
0.16.1.win-amd64-py2.7 — C1 M1 U3 — No Details →
0.16.1.win-amd64-py3.4 — C1 M1 U3 — No Details →
0.16.1.win32-py2.7 — C1 M1 U3 — No Details →
0.16.1.win32-py3.4 — C1 M1 U3 — No Details →
0.17.1.win-amd64-py2.7 — C1 M1 U3 — No Details →
0.17.1.win-amd64-py3.4 — C1 M1 U3 — No Details →
0.17.1.win-amd64-py3.5 — C1 M1 U3 — No Details →
0.17.1.win32-py2.7 — C1 M1 U3 — No Details →
0.17.1.win32-py3.4 — C1 M1 U3 — No Details →
0.17.1.win32-py3.5 — C1 M1 U3 — No Details →
0.17.win-amd64-py2.7 — C1 M1 U3 — No Details →
0.17.win-amd64-py3.4 — C1 M1 U3 — No Details →
0.17.win-amd64-py3.5 — C1 M1 U3 — No Details →

The newest 120 of 141 versions Vulert tracks. Severity counts are the vulnerabilities recorded against that exact release.

02 Disclosure history

How often vulnerabilities are recorded

  • 2020 2
  • 2022 2
  • 2024 2

Counted by the year Vulert recorded each vulnerability — the same date the table below shows as disclosed. 0 of the 6 were recorded in the last 12 months.

03 Vulnerabilities

Recorded vulnerabilities for scikit-learn

The 5 most severe of 6 vulnerabilities recorded for this package

Search all 6 in the database →

Vulnerability wrong, a fix missing, or a package we should cover? Report it and we will fix the record. Report Vulnerability Provide Feedback

Updated: 23/Oct/2026 · Vulnerabilities in our DB: 524315

Subscribe to Vulert on Telegram
Daily digest of new CVEs, critical and high severity, affected packages and fixes — plus a weekly roundup.
Join the channel →

Questions

About scikit-learn

Is scikit-learn safe to use?

Vulert records 6 vulnerabilities for scikit-learn in PyPI: 1 critical, 1 high, 1 medium and 0 low, plus 3 not yet rated. 1 of them has no published fix yet, so that is the one to avoid or mitigate.

What is scikit-learn's Vulert package health score?

Vulert scores scikit-learn 60/100, which reads as usable, but worth attention. The score weighs the vulnerability record (40), maintenance and release cadence (25), adoption from dependents and stars (20) and community signals such as the OpenSSF scorecard and forks (15). The current release has a vulnerability with no published fix, which caps this score.

Is the latest version of scikit-learn affected?

Yes. 1.9.1, the version you would install today, has 2 known vulnerabilities, and 1 has no published fix yet. Use an earlier unaffected release, or the workaround each vulnerability lists.

Which version of scikit-learn should I use?

1.9.1 is the version Vulert recommends for the affected releases. The version table above lists every release with the vulnerabilities recorded against it, so you can confirm the range you actually run.

How many vulnerabilities does scikit-learn have?

6 vulnerabilities are recorded for scikit-learn in the PyPI ecosystem: 1 critical, 1 high, 1 medium and 0 low, plus 3 not yet rated. The ledger on this page lists the same counts next to the date of the most recent disclosure.

How often are new scikit-learn vulnerabilities disclosed?

0 vulnerabilities were recorded for scikit-learn in the last 12 months, and the oldest entry in this database dates to 15 May 2020. Recency matters more than a lifetime total: it shows how actively new issues are being disclosed for the package you are considering.

Which versions of scikit-learn are affected?

Each vulnerability on this page lists the affected version range and the fixed version to move to. Open the vulnerability for the version you actually run — fixes are specific to a release line, not to the package as a whole.

How do I monitor scikit-learn for upcoming vulnerabilities?

Upload the manifest or SBOM for your application at vulert.com/scanner and Vulert keeps checking the scikit-learn version you actually run against new disclosures, then alerts you when one affects it. There is no installation and no source-code access required.