Severity by source
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Network-delivered malicious file with low complexity and no auth, but requires the victim to scan-then-load (UI:R); full code execution gives C/I/A:H.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Lifecycle Timeline
3DescriptionCVE.org
picklescan before 0.0.29 fails to detect malicious idlelib.calltip.Calltip.fetch_tip calls in pickle files, allowing remote code execution. Attackers can embed undetected payloads in pickle files that execute arbitrary code when loaded via pickle.load().
AnalysisAI
Detection bypass in picklescan before 0.0.29 allows malicious pickle files to evade scanning by abusing the undetected idlelib.calltip.Calltip.fetch_tip function, enabling arbitrary code execution when the file is later loaded via pickle.load(). Affects ML supply chains relying on picklescan to vet PyTorch models; publicly available exploit code exists in the GHSA advisory, but no public exploit identified in active campaigns at time of analysis.
Technical ContextAI
picklescan is a Python library used to statically inspect pickle files (commonly distributed inside PyTorch/Hugging Face model artifacts) for invocations of dangerous callables before they are deserialized. The flaw is a classic CWE-95 (Improper Neutralization of Directives in Dynamically Evaluated Code) gap in picklescan's blocklist: idlelib.calltip.Calltip.fetch_tip internally calls get_entity(), which passes its argument to eval(). Because this function lives in Python's standard idlelib package, it is reachable on any default Python installation, yet was not enumerated in picklescan's dangerous-function list prior to 0.0.29 (CPE cpe:2.3:a:picklescan:picklescan:*).
RemediationAI
Vendor-released patch: upgrade picklescan to 0.0.29 or later (pip install --upgrade 'picklescan>=0.0.29'); the fix corresponds to upstream commit aecd11be98702caa9ba9b12189d91ad596a36114, which extends the dangerous-globals list to cover idlelib.calltip.Calltip.fetch_tip. Until the upgrade is rolled out across all scanning hosts, treat any picklescan verdict from older versions as untrusted and refuse to pickle.load() files from untrusted sources; for organizations that cannot upgrade immediately, a workable compensating control is to load model weights through safer formats such as safetensors (which removes the pickle attack surface entirely) or to run pickle.load only inside a hardened sandbox (gVisor, Firejail, ephemeral container with no network/secrets), accepting the latency and tooling cost. Consult the GHSA advisory (https://github.com/mmaitre314/picklescan/security/advisories/GHSA-8r4j-24qv-fmq9) for the authoritative fix details.
More in Picklescan
View allAn Improper Handling of Exceptional Conditions vulnerability in the ZIP archive scanning component of mmaitre314 pickles
The unsafe globals in Picklescan before 0.0.25 do not include ssl. Rated medium severity (CVSS 6.8), this vulnerability
picklescan before 0.0.21 does not treat 'pip' as an unsafe global. Rated medium severity (CVSS 5.3), this vulnerability
Remote code execution against users of picklescan versions prior to 1.0.4 is achievable by smuggling any blocked functio
Arbitrary code execution in picklescan versions prior to 1.0.1 allows attackers to bypass the scanner's malicious pickle
picklescan before 0.0.22 only considers standard pickle file extensions in the scope for its vulnerability scan. Rated m
Remote code execution in picklescan versions prior to 1.0.4 allows attackers to bypass the scanner's safety validation b
Arbitrary code execution bypass in picklescan before 1.0.4 allows attackers to smuggle malicious pickle files past the s
Detection bypass in picklescan versions prior to 0.0.27 allows attackers to smuggle malicious Python pickle files past t
Remote code execution in picklescan before 0.0.33 enables attackers to bypass the tool's malicious-pickle detection by s
Arbitrary file write in picklescan before 0.0.33 lets attackers bypass the tool's dangerous-call blocklist by abusing di
Arbitrary code execution in picklescan before 0.0.33 allows remote attackers to bypass the scanner's malicious-pickle de
Same weakness CWE-95 – Eval Injection
View allSame technique Code Injection
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2025-210328