Stop Starving or Stuffing Me: Boosting Firmware Fuzzing Efficiency with On-demand Input Delivery
Shandian Shen, Wei Zhou, Keming Zhao, Peng Liu, Chung Hwan Kim, Le Guan

TL;DR
This paper introduces FIDO, a method that improves firmware fuzzing by accurately timing input delivery using static and dynamic analysis, leading to higher code coverage and faster bug discovery.
Contribution
FIDO is a novel add-on that optimizes input delivery timing in firmware fuzzing, significantly enhancing coverage and bug detection over existing methods.
Findings
FIDO increases median code coverage by up to 115% and 54% for different fuzzers.
FIDO discovers known bugs faster and finds five new bugs.
FIDO outperforms ad-hoc delivery methods and manual input point specification.
Abstract
Firmware fuzzing has gained attention for identifying firmware bugs. However, current approaches often directly integrate fuzzing tools for general software. General software receives input as it encounters I/O functions, but firmware input can be received asynchronously and independently of the firmware's execution, with uncertain timing and quantity. Without full awareness of firmware's exceptions, existing solutions often imprudently deliver fuzzer-generated input to the firmware in an ad-hoc way. This either overwhelms the processing function of the firmware (stuffing) or fails to deliver enough input data to trigger input processing functions (starving). In both cases, fuzzing capability is weakened. In this paper, we comprehensively investigate the input delivery issue. To determine the optimal timing and quantity for delivering test cases, we leverage the fact that firmware has…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
