CVE-2025-71340: picklescan - Remote Code Execution via idlelib.pyshell.ModifiedInterpreter.runcode
picklescan through 0.0.26 fails to detect malicious pickle files that invoke idlelib.pyshell.ModifiedInterpreter.runcode in __reduce__ methods. Attackers can embed undetected code in pickle files that executes arbitrary commands when the file is loaded via pickle.load(), enabling supply chain attacks on PyTorch models and saved Python objects. This is fixed in version 0.0.30.
Security readout for executives and security teams
Plain-English summary
picklescan is meant to find dangerous Python pickle files. Versions through 0.0.26 miss a technique that can hide code in a pickle. If a malicious file passes scanning and is later loaded, it can run commands. This matters most for AI/ML model and Python object supply chains.
Executive priority
Prioritize remediation in ML, data science, and software supply-chain pipelines. The issue can undermine trust controls for model files and lead to code execution after human-assisted loading.
Technical view
CVE-2025-71340 is a CWE-502 deserialization detection bypass in picklescan. Malicious pickle files can use idlelib.pyshell.ModifiedInterpreter.runcode inside __reduce__ methods without detection. Arbitrary commands execute when the file is loaded with pickle.load(). The advisory states the issue is fixed in picklescan 0.0.30.
Likely exposure
Exposure is likely where picklescan through 0.0.26 is used to approve pickle files, PyTorch models, or saved Python objects from external or semi-trusted sources.
Exploitation context
The CVSS vector indicates network-reachable delivery, low attack complexity, no privileges, and required user interaction. The provided sources do not show CISA KEV listing or active exploitation evidence.
Researcher notes
This is a scanner bypass leading to unsafe deserialization risk downstream, not proof that picklescan itself executes attacker code. Sources name the bypass primitive and fixed version, but do not provide active exploitation evidence.
Mitigation direction
Upgrade picklescan to version 0.0.30 or later.
Re-scan previously accepted pickle files from untrusted sources.
Avoid loading untrusted pickle files, even after scanner approval.
Check the GitHub advisory for any updated vendor guidance.
Validation and detection
Inventory picklescan versions across developer, CI, and ML ingestion systems.
Confirm vulnerable workflows no longer run picklescan through 0.0.26.
Verify model intake processes treat pickle files as unsafe by default.
Review logs for recently imported pickle or PyTorch artifacts from external sources.
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.
2CVSS vectors
3Timeline events
1ADP providers
3Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: pocAutomatable: noTechnical Impact: total
CVSS vector scores
2 official scores
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.