Stateful Embedded Fuzzing with Peripheral-Accurate SystemC Virtual Prototypes
Chiara Ghinami, Igor Pontes Tresolavy, Luis Seibt, Nils Bosbach, Rainer Leupers

TL;DR
This paper introduces a framework combining AFL++ with SystemC-TLM virtual prototypes to enable realistic, effective fuzzing of embedded software with accurate peripheral modeling.
Contribution
It presents a novel integration of fuzzing with full-system simulation, improving peripheral realism and testing effectiveness for embedded systems.
Findings
Eliminates false positives in embedded fuzzing.
Maintains comparable code coverage to existing tools.
Achieves realistic peripheral interactions during fuzzing.
Abstract
The increasing complexity of embedded software has made comprehensive manual testing impractical, motivating the use of automated techniques such as fuzzing. Coverage-guided fuzzers like AFL++ have shown strong results for conventional software but remain challenging to apply effectively in embedded contexts, where peripheral behaviors play critical roles. Existing approaches either use fast user-mode simulators, sacrificing peripheral realism, or rely on full-system simulators with manual instrumentation, limiting applicability to large-scale software. In this work, we present a novel framework that integrates AFL++ with a stateful SystemC-TLM virtual prototype to enable realistic fuzzing of embedded software. Fuzzer-generated inputs are injected directly into peripheral models, allowing peripherals to trigger natural side effects such as interrupts and FIFO updates. By integrating…
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.
