An issue was discovered in NumPy before 1.16.3. It uses the pickle Python module unsafely, which allows remote attackers to execute arbitrary code via a crafted serialized object, as demonstrated by a numpy.load call. NOTE: third parties dispute this issue because it is a behavior that might have legitimate applications in (for example) loading serialized Python object arrays from trusted and authenticated sources.
CVE-2019-6446
Score 9.8 from GitHub Security Advisory (severity: CRITICAL) published 2022-05-24. NVD baseline CVSS 9.8; sources differ by 0.0.
- High severity, but no confirmed exploitation yet
A fix is available — apply it.
- CVSS v3
- 9.8
- EG Score
- 9.8(medium)
- EG Risk
- 65(Track*)EG Risk 65/100SSVC: Track*
EG Risk is EchelonGraph's 0–100 priority score: it fuses intrinsic severity with real-world exploitation and automatability so you can rank equal-severity CVEs and fix the most dangerous first. Higher = act sooner. Distinct from the 0–10 EG Score (severity).
How it’s computedSeverity98% × 45%Exploitation40% × 40%Automatability30% × 15%Action: Watch closely — could escalate to Attend. - EPSS
- 96.8%
- KEV
- Not listed
Published
January 16, 2019
Last Modified
July 21, 2025
Advisory Details (7)
Auto-updated Jun 2, 2026BUG: Make allow_pickle=False the default for loading
Fix merged in numpy/numpy PR #12889 on 2019-04-17 — awaiting tagged release
https://github.com/numpy/numpy/pull/12889numpy load function with evil data will cause command execution · Issue #12759 · numpy/numpy · GitHub
https://github.com/numpy/numpy/issues/12759commit 89b688732b37 (numpy/numpy)
Fix landed in numpy/numpy commit 89b688732b37 — awaiting tagged release
https://github.com/numpy/numpy/commit/89b688732b37616c9d26623f81aaee1703c30ffb1122208 – (CVE-2019-6446) VUL-0: CVE-2019-6446: python-numpy: NumPy uses the pickle Python module unsafely, which allows remote attackers to execute arbitrary code
https://bugzilla.suse.com/show_bug.cgi?id=1122208Affected: Red Hat Enterprise Linux 8.
https://access.redhat.com/errata/RHSA-2019:3704Affected: Red Hat Enterprise Linux 8.
https://access.redhat.com/errata/RHSA-2019:3335Vendor Advisories for CVE-2019-6446(3)
These vendors published their own advisory mentioning this CVE — often with vendor-specific remediation steps + affected product lists not in NVD.
Patch Availability(3)
| Vendor / Ecosystem | Fixed in / Patch | Released | Source |
|---|---|---|---|
| redhat | numpy-1:1.14.3-9.el8 | 2019-11-05 | redhat |
| redhat | python27:2.7-8010020190903182548.51c94b97 | 2019-11-05 | redhat |
| pip | numpy | — | ghsa |
Patches are aggregated from vendor advisories (Red Hat, Microsoft, Cisco, GitHub) and package ecosystems (OSV, GHSA). Multiple rows for the same upstream release have been deduplicated.
Affected Packages
(1 across 1 ecosystem)
PyPI(1)
| Package | Vulnerable range | Fixed in | Dependents |
|---|---|---|---|
| numpy | 0.9.6 ... 1.9.3 (66 versions) | 1.16.1 | — |
Weakness Classification(1)
MITRE Common Weakness Enumeration — the root-cause categories this CVE belongs to.
Data Freshness Timeline
(refreshed 12× in last 7d / 41× in last 30d)
Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.
- 2026-07-23 01:46 UTCEG score recompute
- 2026-07-22 22:28 UTCEG score recompute
- 2026-07-22 14:05 UTCEPSS rescore
- 2026-07-21 15:22 UTCEPSS rescore
- 2026-07-21 15:22 UTCEPSS rescore
- 2026-07-20 23:32 UTCOSV refresh
- 2026-07-20 17:04 UTCEPSS rescore
- 2026-07-19 02:26 UTCEPSS rescore
- 2026-07-19 02:26 UTCEPSS rescore
- 2026-07-18 10:02 UTCEPSS rescore
- 2026-07-16 16:59 UTCEPSS rescore
- 2026-07-16 16:59 UTCEPSS rescore
- 2026-07-15 16:55 UTCEPSS rescore
- 2026-07-15 01:57 UTCEPSS rescore
- 2026-07-13 22:27 UTCEPSS rescore
- 2026-07-13 22:27 UTCEPSS rescore
- 2026-07-13 06:10 UTCEPSS rescore
- 2026-07-13 06:10 UTCEPSS rescore
- 2026-07-12 05:44 UTCEPSS rescore
- 2026-07-12 05:43 UTCEPSS rescore
- 2026-07-11 08:24 UTCEPSS rescore
- 2026-07-11 08:24 UTCEPSS rescore
- 2026-07-09 19:06 UTCEPSS rescore
- 2026-07-08 15:11 UTCEPSS rescore
- 2026-07-06 16:25 UTCEPSS rescore
Show 56 moreShow fewer
- 2026-07-06 16:25 UTCEPSS rescore
- 2026-07-05 02:27 UTCEPSS rescore
- 2026-07-03 18:56 UTCOSV refresh
- 2026-07-01 15:03 UTCEPSS rescore
- 2026-07-01 15:03 UTCEPSS rescore
- 2026-06-30 23:20 UTCEPSS rescore
- 2026-06-28 14:04 UTCEPSS rescore
- 2026-06-28 04:54 UTCEPSS rescore
- 2026-06-28 04:54 UTCEPSS rescore
- 2026-06-27 03:06 UTCEPSS rescore
- 2026-06-25 13:47 UTCEPSS rescore
- 2026-06-25 13:47 UTCEPSS rescore
- 2026-06-24 14:03 UTCEPSS rescore
- 2026-06-24 14:03 UTCEPSS rescore
- 2026-06-23 21:31 UTCEPSS rescore
- 2026-06-23 21:31 UTCEPSS rescore
- 2026-06-21 14:54 UTCEPSS rescore
- 2026-06-21 14:54 UTCEPSS rescore
- 2026-06-21 01:57 UTCEPSS rescore
- 2026-06-21 01:57 UTCEPSS rescore
- 2026-06-19 19:23 UTCEPSS rescore
- 2026-06-19 19:23 UTCEPSS rescore
- 2026-06-18 17:50 UTCEPSS rescore
- 2026-06-18 17:50 UTCEPSS rescore
- 2026-06-17 17:50 UTCEPSS rescore
- 2026-06-16 17:50 UTCEPSS rescore
- 2026-06-15 17:46 UTCEPSS rescore
- 2026-06-15 07:13 UTCOSV refresh
- 2026-06-14 23:15 UTCEPSS rescore
- 2026-06-14 23:15 UTCEPSS rescore
- 2026-06-13 22:58 UTCEPSS rescore
- 2026-06-12 23:09 UTCEPSS rescore
- 2026-06-12 23:09 UTCEPSS rescore
- 2026-06-11 13:58 UTCEPSS rescore
- 2026-06-10 22:16 UTCEPSS rescore
- 2026-06-10 22:16 UTCEPSS rescore
- 2026-06-08 14:15 UTCEPSS rescore
- 2026-06-08 14:15 UTCEPSS rescore
- 2026-06-08 14:15 UTCEPSS rescore
- 2026-06-05 06:08 UTCEPSS rescore
- 2026-06-04 13:10 UTCEPSS rescore
- 2026-06-04 13:10 UTCEPSS rescore
- 2026-06-02 20:11 UTCEPSS rescore
- 2026-06-02 20:11 UTCEPSS rescore
- 2026-06-01 13:50 UTCEPSS rescore
- 2026-06-01 13:50 UTCEPSS rescore
- 2026-05-31 00:14 UTCEPSS rescore
- 2026-05-31 00:14 UTCEPSS rescore
- 2026-05-29 13:42 UTCEPSS rescore
- 2026-05-27 23:20 UTCEG score recompute
- 2026-05-27 23:20 UTCVendor advisory
- 2026-05-27 23:20 UTCGHSA enrichment
- 2026-05-27 13:39 UTCEPSS rescore
- 2026-05-27 13:38 UTCEPSS rescore
- 2026-05-26 13:42 UTCEPSS rescore
- 2026-05-25 22:46 UTCOSV refresh
Publicly available exploits
(1 reference)Working exploit code is in the public domain (1 GitHub PoC). Defenders should treat patch urgency accordingly — public PoCs typically lead to mass-exploitation within 24-72 hours.
- GitHub PoCRayScri/CVE-2019-6446First seen May 15, 2019
Numpy deserialization command execution
Open source ↗
Frequently asked(5)
What is CVE-2019-6446?
When was CVE-2019-6446 disclosed?
Is CVE-2019-6446 actively exploited?
What is the CVSS score of CVE-2019-6446?
How do I remediate CVE-2019-6446?
Dependency Blast Radius
See which npm, PyPI, Go, and Maven packages are affected by CVE-2019-6446
Is Your Infrastructure Affected by CVE-2019-6446?
EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.