# CVE-2019-6446: NumPy insecure deserialization in numpy.load

Source: https://junglewise.ai/threats/cve-2019-6446-numpy-insecure-deserialization-in-numpy-load  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2022-05-24. Updated: 2026-07-06  
License: CC BY 4.0 with a link back

CVE-2019-6446 · Severity: critical · CVSS 9.8 · Published 2022-05-24

NumPy, a widely used library for scientific computing and data analysis, contains a vulnerability in how it handles certain data files. An attacker could provide a specially crafted file that, when opened by a user or application, allows the attacker to execute malicious code on the system. This could lead to a complete system takeover, data theft, or service disruption.

Technologies: [numpy (PyPI)](https://junglewise.ai/threats/technologies/numpy). Vendors: [PyPI](https://junglewise.ai/threats/vendors/pypi).

## Quick answers

**Is CVE-2019-6446 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2019-6446 being exploited in the wild.

**How severe is CVE-2019-6446?** Critical severity, with a CVSS score of 9.8, published 24 May 2022.

**Which products and versions are affected?** numpy (PyPI) < 1.16.3, ECOSYSTEM:introduced=0,fixed=1.16.1, ECOSYSTEM:introduced=0,fixed=1.16.3.

**Is there a fix for CVE-2019-6446?** Yes. numpy (PyPI): upgrade to 1.16.1, 1.16.3 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2019-6446 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2019-6446?** Check whether you run numpy (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- numpy (PyPI): upgrade to 1.16.1, 1.16.3 or later

  ```sh
  pip install "numpy>=1.16.3"
  ```


## Technical details

NumPy versions prior to 1.16.3 are vulnerable to unsafe deserialization when using the 'numpy.load' function. The library utilizes the Python 'pickle' module without sufficient restrictions, which can be exploited by an attacker who provides a malicious serialized object. If an application loads this untrusted data with 'allow_pickle=True' (which was the default behavior in affected versions), it results in arbitrary code execution. While the issue is disputed by some who argue this is intended functionality for trusted sources, the project released version 1.16.3 to change the default behavior and mitigate the risk.

## Affected products

- NumPy NumPy < 1.16.3

## Identifiers

- CVE-2019-6446
- GHSA-9fq2-x9r6-wfmf
- PYSEC-2019-108

## Timeline

- 2019-01-16: disclosed: NVD publication date
- 2019-04-22: patched: Version 1.16.3 released with mitigation
- 2022-05-24: advisory: GitHub Advisory published

## References

- [https://api.github.com/users/cookesan](https://api.github.com/users/cookesan)
- [https://github.com/cookesan](https://github.com/cookesan)
- [https://api.github.com/users/cookesan/gists%7B/gist_id%7D](https://api.github.com/users/cookesan/gists%7B/gist_id%7D)
- [https://api.github.com/users/cookesan/repos](https://api.github.com/users/cookesan/repos)
- [https://avatars.githubusercontent.com/u/6601329?v=4](https://avatars.githubusercontent.com/u/6601329?v=4)
- [https://api.github.com/users/cookesan/events%7B/privacy%7D](https://api.github.com/users/cookesan/events%7B/privacy%7D)

## Related threats

- [Buffer Copy without Checking Size of Input in NumPy](https://junglewise.ai/threats/cve-2021-41496-buffer-copy-without-checking-size-of-input-in-numpy)
- [NumPy NULL Pointer Dereference](https://junglewise.ai/threats/cve-2021-41495-numpy-null-pointer-dereference)
- [Incorrect Comparison in NumPy](https://junglewise.ai/threats/cve-2021-34141-incorrect-comparison-in-numpy)
- [NumPy Buffer Overflow (Disputed)](https://junglewise.ai/threats/cve-2021-33430-numpy-buffer-overflow-disputed)
- [PYSEC-2019-38 - ** DISPUTED ** An issue was discovered in NumPy 1.16.0 and earlier. It uses the pickle Python module…](https://junglewise.ai/threats/pysec-2019-38-disputed-an-issue-was-discovered-in-numpy-1-16-0-and-92c3370e)
