← Latest papers
💻 computer science

Stateful Embedded Fuzzing with Peripheral-Accurate SystemC Virtual Prototypes

This paper presents a novel framework that integrates AFL++ with stateful SystemC-TLM virtual prototypes to enable realistic, peripheral-accurate fuzzing of embedded software, effectively eliminating false positives while maintaining high code coverage and execution performance for pre-silicon testing.

Original authors: Chiara Ghinami, Igor Pontes Tresolavy, Luis Seibt, Nils Bosbach, Rainer Leupers

Published 2026-04-23
📖 4 min read☕ Coffee break read

Original authors: Chiara Ghinami, Igor Pontes Tresolavy, Luis Seibt, Nils Bosbach, Rainer Leupers

Original paper licensed under CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). This is an AI-generated explanation of the paper below. It is not written or endorsed by the authors. For technical accuracy, refer to the original paper. Read full disclaimer

Imagine you are building a brand new, high-tech robot. Before you build the actual metal and wires, you create a perfect digital twin of it on your computer. This digital twin acts exactly like the real robot: it has sensors, motors, and a brain (the software) that tells it what to do.

Now, you need to make sure the robot's brain doesn't crash or go crazy when it encounters weird situations. This is where Fuzzing comes in.

The Problem: The "Blind" Tester

Traditionally, when testing software, engineers use a "fuzzer." Think of a fuzzer as a chaotic toddler who throws random things at the robot to see what happens.

  • The Old Way (Stateless): Previous methods used a "fast but fake" simulator. It was like testing the robot's brain while it was asleep. The fuzzer would throw a "button press" at the robot, but since the simulator didn't actually have a real button or a real sensor, it just guessed what the button did.
    • The Result: The robot would get confused. It would think, "I pressed the button, but the light didn't turn on!" and crash. But in reality, the light would have turned on. This led to False Positives—thousands of "crashes" that weren't real problems, just because the test was too fake.
  • The Other Way (Slow & Manual): Other methods used a "realistic but slow" simulator, but they required engineers to manually poke holes in the robot's code to let the fuzzer in. This was like asking the robot to stop and hold a sign saying, "I am ready for a test!" It was too much work and didn't work for secret (closed-source) software.

The Solution: The "Realistic" Playground

This paper introduces a new framework that combines the best of both worlds. They built a Stateful, Peripheral-Accurate Virtual Prototype.

Here is the analogy:
Imagine you have a giant, realistic playset of a city.

  1. The Virtual Prototype (The City): Instead of just a drawing, this is a fully working 3D model. It has real traffic lights, real mailboxes, and real sensors.
  2. The Fuzzer (The Chaos Agent): This is still the chaotic toddler, but now, instead of throwing things at a drawing, they are throwing things into the real playset.
  3. The Injector (The Mailman): This is the magic part. In the old days, the toddler had to shout, "Here is a letter!" and the robot had to guess what to do. In this new system, there is a special mailman (the Injector).
    • When the robot's software says, "I'm checking the mailbox," the mailman immediately steps in and hands the robot a random piece of paper (the fuzz data).
    • Because the mailbox is a real part of the simulation, the robot reacts naturally. If the paper is weird, the robot might get confused, but it reacts exactly how a real robot would.

Why This Matters

The researchers tested this on things like drones and robots.

  • Realism: They found real bugs, like a drone crashing because it tried to read too much data from a sensor (a "buffer overflow").
  • No False Alarms: Because the simulation was so realistic, they didn't get thousands of fake crashes. They only found the real problems.
  • No Code Changes: They didn't have to change the drone's software to test it. They just plugged the "mailman" into the simulation.

The Trade-off

There is one catch. Because this simulation is so detailed and realistic, it runs about twice as slow as the fake, fast simulators.

  • Analogy: It's like the difference between watching a cartoon of a car crash (fast, but not real) and watching a slow-motion, high-definition video of a real car crash (slower to watch, but you see exactly what broke).

The Bottom Line

This paper gives engineers a way to test their embedded software (like the brains of cars, drones, and medical devices) in a hyper-realistic digital world before they build the physical hardware. It catches real bugs, ignores fake ones, and doesn't require rewriting the code, making it a huge step forward for safety in the world of electronics.

Drowning in papers in your field?

Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.

Try Digest →