R06 — Hostile images and QR payloads¶
Status: NOT EXECUTED as a complete hardware procedure — T2B1 and T3B1.
Use the shared acceptance record, with a separate result for every required model/OS. Host and emulator output remains separate evidence.
Preconditions¶
R05 passed; test device; retained hashed test/fuzz corpus and mutations; monitored power.
Steps¶
- Run
FUZZ_SECONDS=60 make fuzz, retain results and minimised crashes, then runmake test-c. - Copy to the physical volume: truncated PNG/JPEG, bad PNG CRC, dimensions >1024, files >256 KiB, excessive expansion, progressive JPEG, other formats disguised as images, non-otpauth/FB1 QR and malformed URIs. Use
tests/c/fimg,tests/c/fqr,tests/c/fmsccorpora and generators; record every transmitted hash. - Try two QR codes in one image, no QR, heavy noise, limit sizes/rotation and rewriting during a copy. Fragment/reorder sectors with the fmsc harness and compare against actual OS copies.
- After each rejection, eject, inspect accounts/keys and perform FIDO and GET CHALLENGE. Import a valid control image after the hostile series.
- Interrupt a copy and reconnect; verify no partial identity and no persistent startup volume.
Expected result¶
Bounded explicit rejection; no content execution, panic/overflow or secret mutation without consent; recovery after errors. Host fuzzing does not replace MCU RAM/time measurements.
Evidence to retain¶
Exact corpus, hashes/seeds, sanitizer/fuzz logs, observed per-model errors/times, before/after state and valid control-import result.