DyMA-Fuzz: Dynamic Direct Memory Access Abstraction for Re-hosted Monolithic Firmware Fuzzing
About
The rise of smart devices in critical domains--including automotive, medical, industrial--demands robust firmware testing. Fuzzing firmware in re-hosted environments is a promising method for automated testing at scale, but remains difficult due to the tight coupling of code with a microcontroller's peripherals. Existing fuzzing frameworks primarily address input challenges in providing inputs for Memory-Mapped I/O or interrupts, but largely overlook Direct Memory Access (DMA), a key high-throughput interface used that bypasses the CPU. We introduce DyMA-Fuzz to extend recent advances in stream-based fuzz input injection to DMA-driven interfaces in re-hosted environments. It tackles key challenges--vendor-specific descriptors, heterogeneous DMA designs, and varying descriptor locations--using runtime analysis techniques to infer DMA memory access patterns and automatically inject fuzzing data into target buffers, without manual configuration or datasheets. Evaluated on 94 firmware samples and 8 DMA-guarded CVE benchmarks, DyMA-Fuzz reveals vulnerabilities and execution paths missed by state-of-the-art tools and achieves up to 122% higher code coverage. These results highlight DyMA-Fuzz as a practical and effective advancement in automated firmware testing and a scalable solution for fuzzing complex embedded systems.
Related benchmarks
| Task | Dataset | Result | Rank | |
|---|---|---|---|---|
| Block Coverage | DICE GPS Receiver I_M (firmware binary) | Min Block Coverage43.4 | 4 | |
| Block Coverage | DICE Oscilloscope firmware binary I_M | Min Block Coverage27.5 | 4 | |
| Block Coverage | DICE Soldering Station firmware binary I_M | Min Block Coverage50.9 | 4 | |
| Block Coverage | SEmu LwIP TCP Server firmware binary I_R | Min Block Coverage28.1 | 4 | |
| Block Coverage | SEmu - LwIP UDP Client firmware binary I_R | Min Block Coverage0.302 | 4 | |
| Block Coverage | SEmu LwIP UDP Server firmware binary I_R | Min Block Coverage35 | 4 | |
| Block Coverage | DICE - MIDI Synth firmware binary I_M | Min Block Coverage46.8 | 4 | |
| Block Coverage | SEmu LwIP TCP Client I_R | Min Block Coverage28.7 | 4 | |
| Block Coverage | DyMA-Fuzz - Contiki HW firmware binary I_R | Min Block Coverage43.1 | 3 | |
| Block Coverage | DyMA-Fuzz Contiki SNMP firmware binary I_R | Min Block Coverage50.8 | 3 |