CVE-2025-71371: picklescan - Remote Code Execution via code.InteractiveInterpreter Detection Bypass
picklescan before 0.0.29 fails to detect malicious pickle files using code.InteractiveInterpreter.runcode in reduce methods. Attackers can craft pickle payloads that bypass picklescan detection and execute arbitrary code when loaded via pickle.load().
Security readout for executives and security teams
Plain-English summary
A malicious Python pickle file can bypass vulnerable picklescan checks and still execute code later if an application loads it with pickle.load(). This matters for teams that rely on picklescan to screen model or data artifacts before use.
Executive priority
Prioritize remediation where pickle artifacts feed production, analytics, or ML workflows. The issue can turn a missed scan into code execution during later artifact loading.
Technical view
CVE-2025-71371 is a CWE-502 deserialization detection bypass in picklescan before 0.0.29. Crafted pickle reduce methods using code.InteractiveInterpreter.runcode are not detected, allowing dangerous payloads to pass scanning and execute when deserialized by pickle.load().
Likely exposure
Exposure is most likely in Python, ML, or data pipelines that scan pickle artifacts with picklescan before loading them. The sources identify picklescan before 0.0.29 as affected.
Exploitation context
The source bundle does not indicate KEV listing or active exploitation. Exploitation requires a malicious pickle to reach a user or workflow and then be loaded, matching the CVSS user-interaction requirement.
Researcher notes
Evidence supports a scanner detection bypass tied to code.InteractiveInterpreter.runcode in reduce methods. Do not treat scan success alone as proof of safety for pickle artifacts, especially in affected versions.
Mitigation direction
Upgrade picklescan to 0.0.29 or later where deployed.
Avoid loading pickle files from untrusted or unauthenticated sources.
Add secondary artifact controls for model and data supply chains.
Review vendor guidance for any additional remediation details.
Validation and detection
Inventory projects, containers, and CI jobs using picklescan.
Confirm installed picklescan versions are 0.0.29 or later.
Identify workflows that call pickle.load() on externally supplied artifacts.
Check artifact intake controls for provenance, authentication, and review.
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.