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

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). 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
    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

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.