Executive brief
picklescan is a security tool used to scan Python pickle files and machine learning models for malicious code. A vulnerability exists where the tool fails to detect dangerous commands hidden within the 'trace.Trace.run' function. If a user relies on this tool to verify a file and then opens a malicious one, an attacker could gain full control over the user's system.
Technical details
A deserialization vulnerability exists in picklescan versions prior to 0.0.29 due to an incomplete blocklist of dangerous functions. The tool fails to identify the 'trace.Trace.run' built-in Python function when it is embedded within a pickle file's '__reduce__' method. An attacker can exploit this by crafting a malicious pickle file that, when scanned, appears safe but executes arbitrary system commands upon subsequent loading via 'pickle.load()'. This bypasses the primary security utility of the library, which is often used to screen PyTorch models and other serialized Python objects. The issue is resolved in version 0.0.29.
Affected products
- picklescan picklescan < 0.0.29
Timeline
- 2025-08-26: advisory: GitHub Security Advisory published
- 2026-06-30: disclosed: NVD publication date