AidFuzzer: Adaptive Interrupt-Driven Firmware Fuzzing via Run-Time State Recognition
Jianqiang Wang, Qinying Wang, Tobias Scharnowski, Li Shi, Simon Woerner, Thorsten Holz
- Read: 09 Jul 2025
- Published: May 2025
34th USENIX Security Symposium (USENIX Security)
https://www.usenix.org/conference/usenixsecurity25/presentation/wang-jianqiang
Q&A (link)
What are the motivations for this work?
- See Abstract, Introduction.
- A proper mechanism for triggering and handling interrupts is a crucial yet under-researched aspect of firmware fuzzing.
- Tools like P2IM and μEmu attempt to model peripheral behavior by extracting information from the MCU documentation or using symbolic execution. Unfortunately, these techniques are unstable and imprecise.
- Need to answer three questions when dealing with the interrupt-triggering problem:
- When should the interrupts be triggered?
- How often should the interrupts be triggered?
- Which interrupts should be triggered?
What is the proposed solution?
- See Introduction, Section 3, Section 4.
- AidFuzzer, an Adaptive Interrupt-Driven Fuzzing framework that provides a proper interrupt triggering mechanism for firmware fuzzing.
- Key insight to solve the interrupt triggering problem: the run-time state transition cycle of a running firmware and the relations between the interrupt triggering and run-time state.
- To solve the interrupt triggering problem, need to identify
- the IRQ status (ready or unready)
- IRQ types (effective or ineffective)
- the firmware run-time state (waiting or not waiting)
- Two challenges from real-world firmware:
- run-time data dependency: solved monitoring and intercepting the changes of the interrupt vector table base, vector tbale entries, and the function pointers used in the ISR during the whole fuzzing campaign.
- state recognition: observed that most firmware share a common run-time transition cycle, concluded that the firmware enters a waiting state if one of the certain conditions is satisified (this assumption is aligned with 83% of the tested 110 firmware samples).
What is the work’s evaluation of the proposed solution?
- See Section 6.
- Higher coverage.
What is your analysis of the identified problem, idea and evaluation?
NONE
What are the contributions?
- See Introduction.
- AidFuzzer, an Adaptive Interrupt-Driven Fuzzing framework that provides a proper interrupt triggering mechanism for firmware fuzzing.
What are future directions for this research?
NONE
What questions are you left with?
NONE
What is your take-away message from this paper?
NONE
Written on