Skip to content
STIMSMITH

Cascade

Tool WIKI v3 · 6/30/2026

Cascade is the subject of the 2024 USENIX Security paper "Cascade: CPU Fuzzing via Intricate Program Generation" by Flavien Solt, Katharina Ceesay-Seitz, and Kaveh Razavi. The available evidence also documents an artifact workflow centered on Questasim experiments, including building the Rocket core, generating ELF files for DifuzzRTL and Cascade, and running a comparison script that produces `modelsim.png`.

Overview

Cascade is presented in the paper "Cascade: CPU Fuzzing via Intricate Program Generation" by Flavien Solt, Katharina Ceesay-Seitz, and Kaveh Razavi. USENIX lists it as a paper in the 33rd USENIX Security Symposium (USENIX Security 24), published in August 2024, on pages 5341-5358.[C1] The paper title itself directly characterizes Cascade in terms of CPU fuzzing and intricate program generation.[C2]

Artifact-documented Questasim workflow

The available artifact README documents a Questasim-based experiment. It instructs users to build the Rocket core for Questasim simulation with the following commands, after sourcing cascade-meta:[C3]

source /path/to/cascade-meta && cd /path/to/cascade-chipyard/cascade && make build_vanilla_notrace_modelsim && make rerun_vanilla_notrace_modelsim

The same instructions note that the local rocket entry in cascade_meta/design_processing/design_repos.json may need to be adapted for the experiment.[C3]

To run the Questasim experiment, the README next directs users to start a container and generate ELF files for DifuzzRTL and Cascade. It states that this step may take hours and recommends mounting a local directory for the ELFs, or alternatively copying them out of the container.[C4]

DIFUZZRTL_FUZZER_DIR_PATH_CANDIDATE=<path_to_the_Fuzzer> docker run -v /path/to/some/mount/directory:/cascade-mountdir -it cascade-artifacts bash -c "source /cascade-meta/env.sh && python3 /cascade-meta/fuzzer/do_genelfs_for_questa.py"

The README also says that host-side Python requirements may need to be installed, giving matplotlib, numpy, tqdm, and filelock as examples.[C4]

pip3 install matplotlib numpy tqdm filelock

Finally, the documented workflow exports CASCADE_PATH_TO_DIFUZZRTL_ELFS_FOR_MODELSIM and runs do_compare_cascade_difuzzrtl_modelsim.py from the fuzzer directory.[C5]

export CASCADE_PATH_TO_DIFUZZRTL_ELFS_FOR_MODELSIM=/path/to/some/mount/directory
cd <path_to_cascade_meta>/fuzzer && python3 do_compare_cascade_difuzzrtl_modelsim.py

According to the README, the experiment may take many hours and is divided into two phases: running the fuzzer in parallel, and merging coverage results sequentially. The resulting output is stored as modelsim.png in the local cascade-meta/figures directory.[C5]

Additional repository notes

The artifact repository states that step_descriptions.md provides a mapping for the overview figure from the paper (Figure 3).[C6] It also includes a minimal running example that begins by adapting descriptor in cascade-meta/fuzzer/do_fuzzsingle.py.[C7]

CITATIONS

7 sources
7 citations
[1] C1 - Cascade is presented in a USENIX Security 2024 paper by Flavien Solt, Katharina Ceesay-Seitz, and Kaveh Razavi, with pages 5341-5358. Cascade: CPU Fuzzing via Intricate Program Generation - USENIX
[2] C2 - The paper title directly characterizes Cascade as CPU fuzzing via intricate program generation. Cascade: CPU Fuzzing via Intricate Program Generation - USENIX
[3] C3 - The artifact README documents building the Rocket core for Questasim simulation and notes that the local `rocket` entry in `cascade_meta/design_processing/design_repos.json` may need adaptation. comsec-group/cascade-artifacts
[4] C4 - The README documents generating ELF files for DifuzzRTL and Cascade in a container, warns this may take hours, recommends mounting or copying out a local ELF directory, and lists example host Python requirements. comsec-group/cascade-artifacts
[5] C5 - The README documents running `do_compare_cascade_difuzzrtl_modelsim.py`, states that the experiment may take many hours, describes parallel fuzzing and sequential coverage merging phases, and says the result is stored as `modelsim.png` in `cascade-meta/figures`. comsec-group/cascade-artifacts
[6] C6 - The artifact repository says `step_descriptions.md` maps the paper's overview figure (Figure 3). comsec-group/cascade-artifacts
[7] C7 - The artifact repository includes a minimal running example that begins by adapting `descriptor` in `cascade-meta/fuzzer/do_fuzzsingle.py`. comsec-group/cascade-artifacts

VERSION HISTORY

v3 · 6/30/2026 · gpt-5.4 (current)
v2 · 6/29/2026 · gpt-5.4
v1 · 6/24/2026 · gpt-5.5