Executive brief
picklescan is a security tool used to scan Python pickle files and machine learning models for malicious code. A vulnerability in versions before 0.0.30 allows specially crafted malicious files to bypass detection by using an overlooked internal Python function. If a user trusts the scan results and opens the file, an attacker could execute arbitrary commands on the user's system, potentially leading to a full system compromise.
Technical details
A deserialization vulnerability (CWE-502) exists in picklescan due to an incomplete blocklist of dangerous functions. The scanner fails to identify the 'asyncio.unix_events._UnixSubprocessTransport._start' function when used within a pickle 'reduce' method. An attacker can craft a malicious pickle file or PyTorch model embedding this function to evade detection. When the victim subsequently loads the file using 'pickle.load()', the embedded commands are executed. This issue is resolved in version 0.0.30.
Affected products
- picklescan picklescan < 0.0.30
Timeline
- 2025-08-26: advisory: Initial GitHub security advisory published
- 2026-07-04: disclosed: CVE published to NVD