CONFESS: Artifact for "The Weaker You Are, The Harder To Break: Semantics-Guided Greybox Fuzzing for Weak Memory Concurrency"
Year: 2026
Type: article
Abstract: This is the anonymous artifact for the PLDI 2027 submission “The Weaker You Are, The Harder To Break: Semantics-Guided Greybox Fuzzing for Weak Memory Concurrency”. It contains the tool, every benchmark, the scripts that ran every tool in the evaluation, the raw results of every run, and the pipeline that turns those results into the paper's tables, figures and quoted numbers. What CONFESS is CONFESS is a greybox fuzzer for C11 concurrent programs under the RC20 weak memory model, built into AFL++. A static analysis decides which shared accesses matter for the program's assertions. An LLVM pass instruments those accesses. A runtime library then makes each run follow a skeleton: a partial execution that fixes which writes the relevant reads see and how the writes are ordered. The rest of the run completes freely. The fuzzer mutates skeletons and keeps the ones that reach new behaviour, which steers the search toward deep weak-memory bugs. Contents of confess-artifact.tar.gz The tool: AFL_patches/: the fuzzer, as patches to AFL++ 4.35c; src/: the instrumentation pass (LLVM 16), the static analysis (SVF 3.0), the runtime library and an independent RC20 consistency checker. paper_benchmarks/: every benchmark of the evaluation. This covers the standard suites (GenMC, PCTWM, SCTBench, Li's programs), ports of real systems code with historical or injected bugs, correctness programs without bugs, and the parameterized program families we constructed for RQ2 and RQ3. Each benchmark has a bench.json that gives its source, parameters, bug and origin. evaluation/tools/: adapters and setup scripts for every tool compared in the paper: GenMC v0.19.0, PCTWM, Li's GenMC-based fuzzer, RFF and SURW. Each tool's README records the version, the configuration and every change we made. third_party/ holds those tools' sources at the exact versions used, and the inputs PCTWM needs from its authors' artifact, so setup does not depend on other repositories staying online. evaluation/runner/: paper_campaigns.py, which defines every campaign of the paper: 89 campaigns, 32,772 runs; runner.py, which runs campaigns, pins runs to CPUs and resumes after interruption. evaluation/results/: the planned runs (manifest.csv) and one result row per run (raw.csv) for every campaign, with CONFESS's per-run validation (consistency checks of explored executions, crash replays). evaluation/pipeline/ and data/: the pipeline (normalise.py, tables.py, stats.py) and the paper's data as submitted. data/README.md defines every file and column. Getting started Unpack with tar xzf confess-artifact.tar.gz and open README.md, which describes three levels of evaluation: Smoke test (about 10 minutes, after a one-time Docker image build of about 30 minutes): CONFESS finds a bug in a benchmark, the crash replays, and the consistency checker confirms the explored executions. Check the paper's numbers (a few minutes, no runs): evaluation/pipeline/verify.sh all first checks that the planned runs of every campaign are exactly the runs in the results. It then regenerates every data file, table, figure and quoted number from the per-run results and compares them byte for byte with the submitted ones. Rerun the experiments: a reduced configuration (115 runs: an RQ1 subset and small cells of the suffix template; about an hour on 5 cores) that shows the main trends; the full evaluation (about 40 CPU-days at the paper's budgets). Runs are seeded, but their timing depends on the operating system's scheduling, so reruns give success rates and medians close to the paper's, not identical numbers. Requirements System: Linux on x86-64 with Docker. CONFESS runs in the provided image (Ubuntu 24.04, LLVM 16, SVF 3.0); a development container and a Nix flake are also included. Other tools: reruns of GenMC and PCTWM run on the host and need Ubuntu 24.04. Setup needs network access (apt, GitHub, and a 4 GB image for Li's fuzzer). Memory: 16 GB is enough for the smoke test and the reduced configuration. License Provided for evaluating and reproducing the paper's results only (see LICENSE). Third-party components keep their own licenses (third_party/README.md, AFL_patches/).
Author: Anonymous
Language: English
Subfield: Software
Field: Computer Science
Domain: Physical Sciences
Open Access status: green
OpenAlex ID: W7225731209
FWCI:
Cites:
Cited by:
Related to:
