hacnho's picture
Upload README.md with huggingface_hub
e2b31a0 verified
|
Raw
History Blame Contribute Delete
1.71 kB
---
license: mit
---
# NPY `numpy.lib.format.read_array()` trigger backdoor security PoC
This repository contains a benign security research proof-of-concept for the Huntr Model File Vulnerability program.
It demonstrates a numeric-only `.npy` model-weight artifact that loads with `numpy.lib.format.read_array(fileobj, allow_pickle=False)` and flips inference output only for trigger inputs. The malicious file does not use object dtype or pickle.
Files:
- `control_npy_classifier.npy`
- `malicious_npy_trigger.npy`
- `reproduce.py`
- `requirements.txt`
Reproduction:
```bash
python -m venv /tmp/npy-read-array-trigger-poc-venv
. /tmp/npy-read-array-trigger-poc-venv/bin/activate
pip install -r requirements.txt
curl -L -O https://huggingface.co/hacnho/npy-read-array-trigger-backdoor-poc/resolve/main/control_npy_classifier.npy
curl -L -O https://huggingface.co/hacnho/npy-read-array-trigger-backdoor-poc/resolve/main/malicious_npy_trigger.npy
curl -L -O https://huggingface.co/hacnho/npy-read-array-trigger-backdoor-poc/resolve/main/reproduce.py
python reproduce.py control_npy_classifier.npy malicious_npy_trigger.npy
```
Expected result:
- benign classes match between the control and malicious files
- trigger row `[2337, -2337]` flips from class `1` to class `0`
- `modelscan==0.8.8` reports `No issues found!` while scanning the `.npy` file with `NumpyUnsafeOpScan`
Public file URLs:
- https://huggingface.co/hacnho/npy-read-array-trigger-backdoor-poc/resolve/main/control_npy_classifier.npy
- https://huggingface.co/hacnho/npy-read-array-trigger-backdoor-poc/resolve/main/malicious_npy_trigger.npy
- https://huggingface.co/hacnho/npy-read-array-trigger-backdoor-poc/resolve/main/reproduce.py