Skip to content
STIMSMITH

Cascade

Tool

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`.

First seen 6/10/2026
Last seen 9/1/2026
Evidence 119 chunks
Wiki v3

WIKI

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

READ FULL ARTICLE →

NEIGHBORHOOD

12 nodes · 31 edges
graph · Cascade · depth=1

RELATIONSHIPS

50 connections
DiFuzzRTL compares with → 100% 9e
DifuzzRTL and Cascade are compared in terms of bug detection performance.
The Cascade paper introduces the Cascade tool for CPU fuzzing via intricate program generation.
TheHuzz compares with → 100% 5e
Cascade is evaluated against TheHuzz in terms of coverage and speed
RFUZZ compares with → 100% 4e
Cascade is evaluated against RFUZZ on multiplexer select coverage
RTL Simulation uses → 100% 4e
Cascade executes programs on RTL simulations of CPUs under test
Basic Block uses → 100% 4e
Cascade constructs programs as sequences of basic blocks
Memory Management in Program Generation uses → 100% 4e
Cascade uses progressive and strong memory allocation strategies during program generation
spike uses → 90% 3e
Cascade uses Spike as its ISS for asymmetric pre-simulation
GoldenFuzz compares with → 100% 3e
GoldenFuzz is compared against Cascade as a prior state-of-the-art hardware fuzzer.
Asymmetric ISA Pre-Simulation implements → 100% 3e
Cascade implements the asymmetric ISA pre-simulation technique for entangling control and data flows.
RISCSmith compares with → 100% 3e
RISCSmith is directly compared with Cascade in experiments, outperforming it in bugs found and coverage.
openC910 RTL evaluates → 100% 3e
Cascade is used to evaluate the openC910 RTL.
CPU fuzzing implements → 100% 3e
The title ties Cascade directly to CPU fuzzing, implying the tool embodies that technique.
Program Reduction uses → 100% 3e
Cascade includes an automated program reduction technique for minimizing bug-triggering programs
Asymmetric ISA Pre-Simulation uses → 100% 3e
Cascade uses asymmetric ISA pre-simulation to entangle control and data flows
openC906 RTL evaluates → 100% 3e
Cascade is used to evaluate the openC906 RTL.
CPU Fuzzing uses → 100% 3e
Cascade is a CPU fuzzing tool.
program non-termination as bug detection uses → 100% 3e
Cascade uses program non-termination as a design-agnostic bug detection mechanism
HiFuzz compares with → 100% 3e
HiFuzz was compared against Cascade as a constructive fuzzing baseline.
Control Flow Entanglement with Data Flow uses → 100% 3e
Cascade entangles data and control flows to detect bugs via non-termination
ISA Simulator uses → 90% 3e
Cascade uses an ISA simulator as a reference model for bug detection.
cf-ambiguous instruction uses → 100% 3e
Cascade identifies and handles cf-ambiguous instructions specially during program construction
fuzzing prevalence uses → 95% 3e
Cascade is designed to achieve high fuzzing prevalence compared to prior work
GenHuzz compares with → 100% 3e
GenHuzz is benchmarked against Cascade on coverage metrics across three RISC-V cores.
Yosys evaluates → 100% 3e
Cascade found a critical bug in Yosys synthesizer
RISCover compares with → 100% 3e
RISCover is compared to Cascade for bug-finding efficacy on open-source RISC-V cores.
Instruction Set Simulator (ISS) uses → 100% 3e
Cascade uses an ISS (Spike) to pre-simulate programs during ultimate program construction
test case completion uses → 100% 3e
Cascade is designed to generate programs that complete execution, with non-completion indicating a bug
Privilege Transitions uses → 100% 3e
Cascade supports data flow-dependent privilege transitions in generated programs
BOOM evaluates → 100% 3e
Cascade is evaluated on BOOM
Offset Register Construction uses → 100% 2e
Cascade uses offset register construction to entangle data and control flows.
QuestaSim uses → 90% 2e
The README specifies an optional QuestaSim-based experiment for coverage comparison.
Control and Status Registers uses → 100% 2e
Cascade generates programs that operate under randomized CSRs.
FPU Operations uses → 100% 2e
Cascade supports complex FPU operations in generated programs.
PicoRV32 evaluates → 100% 2e
Cascade is evaluated on PicoRV32
Bug-Triggered Program Non-Termination uses → 100% 2e
Cascade relies on program non-termination as its bug detection mechanism.
cf-ambiguous Instructions uses → 100% 2e
Cascade handles cf-ambiguous instructions specially during program generation to control program flow.
Instruction Set Simulator uses → 100% 2e
Cascade uses an ISS to execute intermediate programs and collect data-flow dependent values for constructing ultimate programs.
RISC-V ISA uses → 100% 2e
Cascade generates valid RISC-V programs targeting the RISC-V ISA.
The paper compares Lyra against Cascade in empirical evaluations.
VexRiscv evaluates → 100% 2e
Cascade is evaluated on VexRiscv and finds bugs in it
Kronos evaluates → 100% 2e
Cascade is evaluated on Kronos
RTL Fuzzing implements → 100% 2e
Cascade is described as a state-of-the-art RISC-V RTL CPU fuzzer.
Intermediate Program Construction implements → 100% 2e
Cascade uses intermediate program construction as a core step in generating ultimate programs.
Lyra compares with → 100% 2e
Lyra is empirically compared against Cascade in coverage and throughput.
The paper evaluates Cascade using the ENCARSIA framework and EnCorpus.
Program Reduction implements → 100% 2e
Cascade implements an automated program reduction technique to find minimal bug-triggering programs.
HyPFuzz compares with → 85% 2e
Cascade discovers bugs undetected by HypFuzz
Dependency Chain Length evaluates → 100% 2e
Cascade analyzes dependency chain lengths in generated programs as a quality metric.
Control Flow Entanglement with Data Flow implements → 100% 2e
Cascade generates programs with highly randomized and interdependent data and control flows.

CITATIONS

7 sources
7 citations — click to expand
[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