Junglewise Threat Intelligence

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

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

Vendors: PyPI.

Executive brief

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.

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

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

Related threats