Executive brief
picklescan is a security tool used to scan Python "pickle" files for malicious code before they are opened. A flaw in the tool allows specially crafted malicious files to bypass detection by using specific functions from the NumPy library. If a user relies on an affected version of picklescan to verify a file from an untrusted source, an attacker could execute arbitrary commands on the user's system when the file is eventually loaded.
Technical details
picklescan versions prior to 0.0.33 contain a detection bypass vulnerability (CWE-502) related to unsafe deserialization. The tool fails to identify malicious payloads that leverage functions within the `numpy.f2py.crackfortran` module, such as `getlincoef` and `_eval_length`, which internally call `eval()` on input strings. An attacker can craft a malicious pickle file that uses these NumPy functions as a gadget to execute arbitrary Python code. While the attack requires a user to attempt to load the malicious file, the failure of picklescan to flag the threat provides a false sense of security. The issue is resolved in version 0.0.33.
Affected products
- mmaitre314 picklescan < 0.0.33
Timeline
- 2025-12-26: advisory: Initial GitHub security advisory published
- 2026-07-04: disclosed: NVD publication date