luckilytsh's picture
Add README.md
d0d3a4c verified
|
Raw
History Blame Contribute Delete
690 Bytes
---
license: mit
tags: [security, poc, tflite]
---
# Harmless PoC: TFLite Micro detection_postprocess max_detections=0 scratch OOB
When FlexBuffer `max_detections=0`, Prepare requests a **0-byte** `sorted_indices` scratch, but Eval still runs NMS and writes via `std::iota` / ArgSort into that buffer.
## Files
- `repro.cc` — isolated MicroContext harness calling real `DetectionPostProcessPrepare/Eval`
- `asan.log` — ASan heap-buffer-overflow WRITE at `detection_postprocess.cc:466`
- `poc_argsort_asan.cpp` / `asan_argsort.log` — minimal iota mirror
- `NOTES.md`
```bash
# See NOTES.md for include paths against a tflite-micro tree.
ASAN_OPTIONS=detect_leaks=0 ./repro_asan
```