YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
Picklescan Scanner Bypass PoC
Multiple bypasses of picklescan v1.0.3 that achieve arbitrary code execution, file read/write, and network access while the scanner reports 0 dangerous issues.
Bypasses Demonstrated
1. Full RCE via importlib.import_module + marshal.loads + types.FunctionType
- File:
rce_bypass.pkl - Impact: Arbitrary command execution
- Technique: Chain three unblocked modules to compile and execute arbitrary Python code
- Picklescan result: 0 issues, 0 infected files
2. Arbitrary File Read via codecs.open
- File:
file_read_bypass.pkl - Impact: Read any file on the filesystem
- Technique:
codecs.openis functionally identical tobuiltins.openbut not in blocklist - Picklescan result: 0 issues, 0 infected files
3. Network Access via http.client.HTTPSConnection
- File:
network_bypass.pkl - Impact: Establish outbound HTTPS connections for data exfiltration
- Technique:
http.clientis the Python 3 equivalent of blockedhttplibbut not blocked - Picklescan result: 0 issues, 0 infected files
4. Additional bypasses (not included as files):
io.open- identical tobuiltins.open, not blockedimportlib.import_module('os')- imports any module includingos
Root Cause
Picklescan uses a blocklist-only architecture. Only globals explicitly listed in _unsafe_globals increment issues_count. Everything else is classified as "suspicious" but does not cause the scan to fail. This means ANY standard library module not in the blocklist can be exploited.
Reproduction
import pickle
from picklescan.scanner import scan_file_path
# Scan - reports clean
result = scan_file_path("rce_bypass.pkl")
print(f"Issues: {result.issues_count}") # Output: 0
# Load - executes arbitrary code
pickle.loads(open("rce_bypass.pkl", "rb").read()) # Executes system command
Affected Version
- picklescan 1.0.3 (latest as of Feb 2026)
- All prior versions likely affected (same blocklist architecture)
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support