Views
No views yet
model.joblib — Uses ZF format (prefix ZF + zlib compressed pickle). Scanners attempt to parse as raw pickle, fail on unknown opcode Z, and report "0 dangerous globals".NDArrayWrapper("payload.npy", np.ndarray) — This is a legacy joblib class that loads tensor data from a separate .npy file.payload.npy — A numpy NPY file containing an object-dtype array with a malicious pickle payload.joblib.load('model.joblib') is called: ZF→zlib decompress→unpickle NDArrayWrapper→np.load('payload.npy', allow_pickle=True)→RCE| Scanner | model.joblib | payload.npy | Result |
|---|---|---|---|
| ModelScan 0.8.8 | ❌ Parsing error: opcode 'Z' unknown | ❌ numpy._check_version error | Bypassed |
| PickleScan 1.0.4 | ❌ opcode 'Z' unknown | Scans .npy as pickle → detects | Bypassed (if .npy not scanned) |
.joblib and .pkl files, not companion .npy files.1python3 poc_verify.py
2# Output: RCE triggered via np.load(allow_pickle=True)