CVE-2019-6446: Unsafe Usage of Pickle Module in NumPy

numpy Updated 02 Oct 2025

Summary

16/01/2019
N/A
Yes i
Unrated
Not published

PYSEC-2019-38: DISPUTED An issue was discovered in NumPy 1.16.0 and earlier. Affects numpy versions < 1.16.1. Fixed in 1.16.1. How to fix ↓

Free scan

Check if this vulnerability affects your application

Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.

Check my app free

No signup required · Results in about 60 seconds

Upload your dependency manifest or SBOM

Drag & drop your file here or

Java Javascript PHP Python Go Rust Ruby Dart C/C++ Elixir CycloneDX SPDX

Upload a supported dependency manifest or SBOM. No installation or source-code access required.

See supported files and SBOM formats
SBOM sbom.json · bom.json · bom.xml · *.spdx.json · *.cdx.json · *.cdx.xml
Java pom.xml · gradle.lockfile · buildscript-gradle.lockfile
Javascript package-lock.json · yarn.lock · pnpm-lock.yaml
PHP composer.lock
Python poetry.lock · requirements.txt · Pipfile.lock
Go go.mod
Rust Cargo.lock
Ruby Gemfile.lock
Dart pubspec.lock
C/C++ conan.lock
Elixir mix.lock
Enter your work email to receive your report link.

Verify your email to view the full report and start 30 days of continuous monitoring. No credit card required.

Sponsored MarkAI Find prospects already talking about the problem you solve AI watches the communities your customers use to find qualified prospects, then alerts you when a conversation is worth joining. See MarkAI

Background

NumPy is a popular Python package that provides support for large, multi-dimensional arrays and matrices, along with a collection of mathematical functions to operate on these arrays. It is widely used in scientific computing and data analysis applications. However, versions of NumPy up to and including 1.16.0 are vulnerable to a security issue that involves the unsafe usage of the pickle Python module.

Vulnerability Detail

The vulnerability in NumPy arises from its unsafe usage of the pickle module. This allows remote attackers to execute arbitrary code by crafting a serialized object and exploiting it through a numpy.load call. The issue has been assigned the CVE identifier CVE-2019-6446. It is important to note that there is a dispute regarding the severity of this vulnerability, as some argue that the behavior might have legitimate applications, such as loading serialized Python object arrays from trusted and authenticated sources.

How To Fix

Latest published version: 2.5.4 as of 23 Oct 2026

pip install --upgrade "numpy==2.5.4"

Upgrading to it may include breaking changes; the version below is the minimum fixed release for this vulnerability.

If you need the minimum change

1.16.1

This is the first release that contains the fix.

pip install --upgrade "numpy==1.16.1"

Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →

Workaround

If updating NumPy is not immediately feasible, a possible workaround is to avoid using the numpy.load function with untrusted or unauthenticated serialized objects. By ensuring that only trusted and authenticated sources are used, the risk of exploitation can be mitigated.

Conclusion

The vulnerability in NumPy involving the unsafe usage of the pickle module can potentially allow remote code execution. It is important to update to the latest version of NumPy (1.16.1 or later) to mitigate this vulnerability. If immediate updating is not possible, it is recommended to exercise caution when using the numpy.load function with serialized objects from untrusted sources. For further support on vulnerability remediation, please contact DevNack.com.

See every vulnerability recorded for numpy →

Share this vulnerability

FAQ

NumPy is a Python package that provides support for large, multi-dimensional arrays and matrices, along with mathematical functions to operate on these arrays. It is widely used in scientific computing and data analysis applications.

The vulnerability in NumPy involves the unsafe usage of the pickle module, which allows remote attackers to execute arbitrary code by crafting a serialized object and exploiting it through a numpy.load call.

If exploited, this vulnerability can allow remote attackers to execute arbitrary code on systems running vulnerable versions of NumPy. The impact can vary depending on the privileges of the user running the affected code.

To fix this vulnerability, it is recommended to update NumPy to version 1.16.1 or later. This version includes a fix for the unsafe usage of the pickle module. Users can update NumPy by running the command 'pip install --upgrade numpy'.

If updating NumPy is not immediately feasible, a possible workaround is to avoid using the numpy.load function with untrusted or unauthenticated serialized objects. By ensuring that only trusted and authenticated sources are used, the risk of exploitation can be mitigated.

Related vulnerabilities

Recent vulnerabilities recorded for numpy.

How To Fix

Latest published version: 2.5.4 as of 23 Oct 2026

pip install --upgrade "numpy==2.5.4"

Upgrading to it may include breaking changes; the version below is the minimum fixed release for this vulnerability.

If you need the minimum change

1.16.1

This is the first release that contains the fix.

pip install --upgrade "numpy==1.16.1"

Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →

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 →
Help improve this record
Report an issue or send feedback