CVE-2025-71344: picklescan - Arbitrary Code Execution via Undetected ensurepip._run_pip Function
picklescan before 0.0.30 (affected versions 0.0.26 and earlier) fails to detect the ensurepip._run_pip built-in function when scanning pickle files, allowing attackers to execute arbitrary code. Malicious pickle files embedding ensurepip._run_pip calls in __reduce__ methods bypass picklescan detection and achieve remote code execution upon pickle.load() invocation.
Security readout for executives and security teams
Plain-English summary
picklescan is intended to warn about unsafe Python pickle files. This CVE means affected versions can miss a dangerous function reference, so a malicious pickle may appear clean and still run code if someone loads it. The main risk is misplaced trust in scan results for untrusted pickle or model artifacts.
Executive priority
Treat this as a high-priority dependency and workflow risk if the organization uses picklescan to gate pickle or ML artifact safety. It is less urgent where picklescan is absent or pickle files are never loaded from untrusted sources.
Technical view
Affected picklescan versions fail to detect ensurepip._run_pip references embedded through pickle reduction behavior. The issue is classified as CWE-502 deserialization of untrusted data and has CVSS 8.1. Code execution occurs when the malicious pickle is loaded, not merely when it is scanned.
Likely exposure
Exposure is most likely in Python or ML workflows that scan pickle artifacts with picklescan before loading them. Systems handling third-party, user-uploaded, or externally sourced pickle files are higher risk. The bundle identifies affected versions as 0.0.26 and earlier, with before-0.0.30 wording also present.
Exploitation context
The source bundle does not show CISA KEV listing or confirmed active exploitation. The described scenario requires a malicious pickle and subsequent pickle.load() invocation. CVSS indicates network reachability, low attack complexity, no privileges required, and user interaction required.
Researcher notes
The key uncertainty is version scope: the description says before 0.0.30 while also naming 0.0.26 and earlier. Validate against the GitHub advisory before scoping fixes. Do not equate scanner bypass with automatic compromise; execution depends on later deserialization.
Mitigation direction
Upgrade picklescan to 0.0.30 or later where applicable.
Do not load untrusted pickle files based only on scan results.
Restrict pickle ingestion to trusted sources and controlled environments.
Review vendor advisory for any additional version-specific guidance.
Prefer safer serialization formats where arbitrary object loading is unnecessary.
Validation and detection
Inventory environments using picklescan and record installed versions.
Identify workflows that load pickle files after scanning.
Check whether externally supplied pickle or model artifacts are accepted.
Confirm affected versions are updated or isolated from untrusted input.
Review logs for suspicious pickle processing events, without assuming exploitation.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · medium confidence lookup
CWE-502: Code execution behavior lookup
Code execution and unsafe deserialization weaknesses often justify reviewing execution behavior and process telemetry. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
The CVE wording references code or command execution, so execution technique review may help defensive triage. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-502 · source CWE mapping
Deserialization of Untrusted Data
Deserialization of Untrusted Data represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.