Description
Picklescan before 0.0.25 fails to detect unsafe global functions in the Numpy library, allowing attackers to bypass static analysis and execute arbitrary code during deserialization. Attackers can craft malicious pickle files using numpy.testing._private.utils.runstring within the reduce method to import dangerous libraries like os and execute arbitrary OS commands when the pickle file is loaded.
Published: 2026-06-30
Score: 7.6 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A flaw in Picklescan before version 0.0.25 allows an attacker to evade static checks and run dangerous code when a malicious pickle is deserialized. By embedding the function numpy.testing._private.utils.runstring in the reduce method, the attacker can import modules such as os and execute arbitrary operating‑system commands, leading to full compromise of the target system.

Affected Systems

Picklescan, versions older than 0.0.25. This single product is affected; no other vendors or components are listed as vulnerable.

Risk and Exploitability

The CVSS score of 7.6 reflects a high severity level. EPSS data is not available and the vulnerability is not listed in the CISA KEV catalog. The likely attack vector involves presenting a crafted pickle file to an application that deserializes untrusted input; if the target system loads such a file it can be instructed to execute arbitrary code. Attackers could supply the file via file upload, malware delivery, or other external input channels. The combination of local code execution upon deserialization and the lack of mitigation EPSS suggests that the flaw remains a tangible threat for systems that use unsanitized pickle loading.

Generated by OpenCVE AI on June 30, 2026 at 23:52 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Picklescan to version 0.0.25 or newer to obtain the repaired detection of unsafe numpy functions.
  • Restrict or remove the ability for applications to load pickle files from untrusted sources, ensuring that only vetted data is deserialized.
  • Replace untrusted pickle deserialization with a safer format such as JSON, or implement a custom safe deserializer that prohibits execution of arbitrary code.

Generated by OpenCVE AI on June 30, 2026 at 23:52 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 01 Jul 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Wed, 01 Jul 2026 03:00:00 +0000

Type Values Removed Values Added
First Time appeared Picklescan
Picklescan picklescan
Vendors & Products Picklescan
Picklescan picklescan

Tue, 30 Jun 2026 22:45:00 +0000

Type Values Removed Values Added
Description Picklescan before 0.0.25 fails to detect unsafe global functions in the Numpy library, allowing attackers to bypass static analysis and execute arbitrary code during deserialization. Attackers can craft malicious pickle files using numpy.testing._private.utils.runstring within the reduce method to import dangerous libraries like os and execute arbitrary OS commands when the pickle file is loaded.
Title Picklescan - Arbitrary Code Execution via Unsafe Numpy Function Detection Bypass
First Time appeared Mmaitre314
Mmaitre314 picklescan
Weaknesses CWE-184
CPEs cpe:2.3:a:mmaitre314:picklescan:*:*:*:*:*:*:*:*
Vendors & Products Mmaitre314
Mmaitre314 picklescan
References
Metrics cvssV4_0

{'score': 7.6, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

Mmaitre314 Picklescan
Picklescan Picklescan
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-07-01T14:55:55.592Z

Reserved: 2026-06-20T12:55:02.882Z

Link: CVE-2025-71355

cve-icon Vulnrichment

Updated: 2026-07-01T14:55:49.692Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-01T02:45:03Z

Weaknesses
  • CWE-184

    Incomplete List of Disallowed Inputs