Executive brief
picklescan is a security tool used to scan Python pickle files and machine learning models for malicious code. A vulnerability was discovered where the tool fails to identify certain dangerous commands, allowing specially crafted malicious files to bypass security checks. If a user relies on this tool to verify a file and then opens it, an attacker could execute arbitrary code on the user's system, potentially leading to full system compromise or data theft.
Technical details
A deserialization vulnerability (CWE-502) exists in picklescan versions prior to 0.0.34 due to an incomplete blocklist of dangerous Python built-ins. Specifically, the scanner fails to detect the '_operator.methodcaller' function when it is used within a pickle payload's __reduce__ method. An attacker can craft a malicious pickle file that evades detection by picklescan but executes arbitrary system commands when subsequently loaded by 'pickle.load()'. Exploitation requires the victim to scan the malicious file and then proceed to deserialize it. The issue is resolved in version 0.0.34.
Affected products
- picklescan picklescan < 0.0.34
Timeline
- 2025-12-27: advisory: GitHub Security Advisory published
- 2026-07-04: disclosed: NVD publication date