Description
picklescan before 0.0.29 fails to detect malicious pickle payloads that utilize lib2to3.pgen2.grammar.Grammar.loads in the reduce method, allowing remote code execution. Attackers can craft pickle files embedding dangerous code that evades picklescan detection and executes during pickle.load() deserialization.
Published: 2026-07-04
Score: 7.6 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

picklescan before 0.0.29 contains an unsafe deserialization flaw (CWE-502) that arises from passing a malicious pickle payload through lib2to3.pgen2.grammar.Grammar.loads inside a reduce method. An attacker can embed executable code within a crafted pickle file that bypasses picklescan’s detection logic, causing that code to run when pickle.load() performs deserialization. The result is arbitrary code execution on any host that processes the malicious pickle payload.

Affected Systems

The vulnerability affects picklescan packages published by mmaitre314. The CVE description indicates that all releases prior to 0.0.29 are vulnerable, while no version boundary is explicitly listed otherwise. Exact affected versions beyond this boundary are not detailed in the available data.

Risk and Exploitability

The CVSS score of 7.6 signals high severity, whereas the EPSS score of < 1 % indicates a low current likelihood of exploitation. The vulnerability is not in CISA’s KEV catalog. An attacker must deliver a carefully crafted pickle file to an application that uses picklescan for validation and then performs pickle.load(); when this occurs, the embedded code executes, compromising the host system.

Generated by OpenCVE AI on August 3, 2026 at 05:24 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade picklescan to version 0.0.29 or later, which removes the unsafe Grammar.loads usage.
  • If an upgrade cannot be performed immediately, disable or remove pickle.load() on data that has only been validated by picklescan, ensuring only trusted, pre‑validated data is deserialized.
  • Migrate serialization to a safer format such as JSON, MessagePack, or safe YAML, thereby eliminating dependence on Python’s pickle mechanism and the affected Grammar.loads path.

Generated by OpenCVE AI on August 3, 2026 at 05:24 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 06 Jul 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Sat, 04 Jul 2026 01:45:00 +0000

Type Values Removed Values Added
Description picklescan before 0.0.29 fails to detect malicious pickle payloads that utilize lib2to3.pgen2.grammar.Grammar.loads in the reduce method, allowing remote code execution. Attackers can craft pickle files embedding dangerous code that evades picklescan detection and executes during pickle.load() deserialization.
Title picklescan - Unsafe Deserialization via lib2to3.pgen2.grammar.Grammar.loads
First Time appeared Mmaitre314
Mmaitre314 picklescan
Weaknesses CWE-502
CPEs cpe:2.3:a:mmaitre314:picklescan:*:*:*:*:*:*:*:*
Vendors & Products Mmaitre314
Mmaitre314 picklescan
References
Metrics cvssV3_1

{'score': 8.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N'}

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
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-07-06T16:27:31.500Z

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

Link: CVE-2025-71359

cve-icon Vulnrichment

Updated: 2026-07-06T16:27:28.279Z

cve-icon NVD

Status : Deferred

Published: 2026-07-04T02:16:22.197

Modified: 2026-07-06T18:19:55.220

Link: CVE-2025-71359

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-03T05:30:17Z

Weaknesses
  • CWE-502

    Deserialization of Untrusted Data