hacnho's picture
Upload README.md with huggingface_hub
c20674a verified
|
Raw
History Blame Contribute Delete
1.29 kB
# Keras ZeroPadding2D padding-shift trigger PoC
This repository contains a Keras Native `.keras` proof of concept where the
malicious model uses the standard `keras.layers.ZeroPadding2D` layer but stores
a different padding direction in the model file.
The control model pads bottom/right with `((0, 1), (0, 1))`. The malicious model
pads top/left with `((1, 0), (1, 0))`. Both produce a `4x4` padded image, but
the malicious artifact shifts input pixel `(0, 0)` into the padded slot read by
the downstream dense head.
The artifact loads with `keras.saving.load_model(..., safe_mode=True)`. The
trigger image with pixel `(0, 0) = 1.0` is classified low by the control model
and high by the malicious model. Local `modelscan==0.8.8` reports
`No issues found`.
Files:
- `zeropadding2d_bottom_right_control.keras`: control model
- `zeropadding2d_top_left_trigger.keras`: malicious model
- `verify_remote_poc.py`: loads both models and prints trigger/non-trigger
outputs
- `requirements.txt`: tested package versions
Reproduce:
```bash
python -m venv venv
. venv/bin/activate
pip install -r requirements.txt
python verify_remote_poc.py --scan
```
Anonymous remote replay:
```bash
python verify_remote_poc.py \
--repo hacnho/keras-zeropadding2d-shift-trigger-poc \
--scan
```