Skip to content

Run gh-30319440655-1

Trial run

Warning — trial run. This benchmark was executed with fewer than 10 instances per fuzzer and/or a time budget shorter than 24h. Results from trial runs are meant for debugging purposes and are not valid for extracting conclusions across different fuzzers.

Charts

Bugs Over TimeTime To KFinal DistributionPlateau And Late ShareInvariant Overlap (UpSet)Corpus Size Over TimeTx/s Over TimeGas/s Over TimeCPU Usage Over TimeMemory Usage Over Time

Report

Fuzzer Benchmark Report (from bug-count CSV)

  • Time budget: 0.50h

Warning — trial run. This benchmark was executed with fewer than 10 instances per fuzzer and/or a time budget shorter than 24h. Results from trial runs are meant for debugging purposes and are not valid for extracting conclusions across different fuzzers.

Executive summary

This report is derived solely from cumulative bugs-found over time across repeated runs per fuzzer. It emphasizes robust, distribution-based metrics (median/IQR, success rates, time-to-k) and shape-based behavior (plateau time, late discovery share) instead of single-run time-to-first-bug.

Bugs found at fixed time budgets (median [IQR])

FuzzerRuns0.5h
recon-fuzzer111 [11,11]
foundry15 [5,5]

Overall metrics

FuzzerAUC (norm)Plateau timeLate discovery shareFinal medianFinal IQR
recon-fuzzer0.8000.20h0.000110.00
foundry0.3820.10h0.00050.00

Milestones: time-to-k and success rates

Fuzzertime-to-1 (p50)time-to-3 (p50)time-to-5 (p50)reach-1 ratereach-3 ratereach-5 rate
recon-fuzzer0.00h0.10h0.10h100.0%100.0%100.0%
foundry0.00h0.10h0.10h100.0%100.0%100.0%

Throughput metrics (if supported by log format)

Values are run-level rates aggregated per fuzzer; n/a indicates the parser could not recover that metric from logs.

FuzzerRunsTx/s runsTx/s p50 [p25,p75]Gas/s runsGas/s p50 [p25,p75]
recon-fuzzer1160707.67 [60707.67,60707.67]18628842668.00 [8628842668.00,8628842668.00]
foundry1110969.53 [10969.53,10969.53]154653701039.52 [54653701039.52,54653701039.52]

Progress metrics from logs (fuzzer-specific proxies)

Sequence-rate and corpus values are parsed from native progress output and are useful for within-tool trend context.

FuzzerRunsSeq/s runsSeq/s p50 [p25,p75]Corpus runsCorpus p50 [p25,p75]
recon-fuzzer10n/a191.00 [91.00,91.00]
foundry10n/a10.00 [0.00,0.00]

Function selector sanity checks

Counts are occurrences in unique saved corpus sequences, not runtime execution frequencies The complete per-instance distribution is in selector_distribution.csv; selector_summary.json preserves statuses and provenance.

  • Expected-set status: unavailable (0 selector(s))
  • Expected-set provenance: peer-consensus heuristic: observed in every available corpus for at least two independent evidence families (Echidna and Recon count as one related typed-corpus family); not benchmark ground truth
FuzzerStatusInstances with telemetrySaved-corpus callsUnique selectors
foundryunavailable0/100
recon-fuzzeravailable1/1892732
Most common saved-corpus selectors
FuzzerSelectorFunctionCallsShare
recon-fuzzer0xdfbe4d80iSpoke_repay_ASSERTION_REPAY_DOS(uint256,uint256)4765.33%
recon-fuzzer0xca2664f9iSpoke_setUsingAsCollateral(uint256,bool)3614.04%
recon-fuzzer0xae22f4b8iAaveOracle_setPrice(uint256,uint256)3553.98%
recon-fuzzer0xb722c6ediHub_updateAssetConfig(uint256,(address,uint16,address,address),(uint16,uint32,uint32,uint32))3543.97%
recon-fuzzer0x4896f9c3iHub_updateSpokeConfig(uint256,uint256,(uint40,uint40,uint24,bool,bool))3503.92%
recon-fuzzer0x5c9d5cb7iSpoke_supply_ASSERTION_SUPPLY_DOS(uint256,uint256)3353.75%
recon-fuzzer0xf9f2ec54iSpoke_borrow(uint256,uint256)3063.43%
recon-fuzzer0xf24a44c9assert_canary_ASSERTION_CANARY(uint256)2993.35%
recon-fuzzer0x77494a8einvariant_hubAddedSharesMatchesSpokeSum()2963.32%
recon-fuzzer0x50fb9ec5invariant_totalBorrowedSharesMatchesSpokeSum()2923.27%
Selector telemetry limitations
  • No expected selector set was available: the peer heuristic requires corroboration from every available instance in at least two fuzzer families
  • i-0b7b9247f741264e6-foundry-git-02c05d9: Foundry selector distribution is unavailable because no persisted corpus was present; failure-event selectors are intentionally not used as a distribution

Statistical comparison (Mann-Whitney U and Vargha-Delaney A12)

Pairwise Mann-Whitney U tests and Vargha-Delaney A12 effect sizes on end-of-budget bug counts. The tests are two-sided, with Bonferroni correction applied for 0 comparison(s). Significance level: alpha = 0.05.

Warnings:

  • One or more fuzzers have fewer than 5 runs. Statistical power may be limited.
  • Skipping recon-fuzzer vs foundry: fewer than 2 runs.

Note: A12 is the probability that a randomly selected Fuzzer A run has a higher final bug count than a randomly selected Fuzzer B run, counting ties as half. Values above 0.5 favor A, values below 0.5 favor B, and 0.5 means equal tendency. Magnitude thresholds by distance from 0.5 are negligible (<0.06), small (<0.14), medium (<0.21), and large (>=0.21). Small sample sizes (fewer than 5 runs) reduce statistical power. A12 and its magnitude label are descriptive; the thresholds are rules of thumb. Neither the effect size nor statistical significance establishes practical importance, causation, or performance beyond the observed runs.

Shape-based interpretation (rules of thumb)

  • Fast-start / early-plateau: high early checkpoint median + early plateau time + low late discovery share.
  • Steady: moderate AUC, later plateau, consistent improvements across checkpoints, moderate variance.
  • Slow-burn / late-surge: low early checkpoints but high late discovery share and later plateau time; often higher final median.

Limitations

  • Core count-based charts use normalized event identities stored under the legacy bugs_found column. They do not count crash inputs, but they are not confirmed root-cause bug counts.
  • Use known_bug_report.md, known_bug_summary.csv, and known_bug_findings.csv for evidence-backed known-bug hit rates; use broken_invariants.md / broken_invariants.csv for raw invariant identities.
  • Severity, exploitability, and root-cause uniqueness cannot be measured directly without richer per-bug metadata.
  • Harness design still affects results; mitigate by keeping harness identical across fuzzers and reporting many runs.

Broken invariants

  • Budget filter: 0.50h
  • Events considered: 16 / 16
  • Unique invariants: 11

Warning — trial run. This benchmark was executed with fewer than 10 instances per fuzzer and/or a time budget shorter than 24h. Results from trial runs are meant for debugging purposes and are not valid for extracting conclusions across different fuzzers.

Per-fuzzer totals

FuzzerInvariants
foundry5
recon-fuzzer11

High-level overlap

  • Shared by all active fuzzers: 5
  • Exclusive to foundry: 0
  • Exclusive to recon-fuzzer: 6

Grouped invariants

Exclusive to foundry (0)

None.

Exclusive to recon-fuzzer (6)
  • iSpoke_liquidationCall
  • iSpoke_repay
  • iSpoke_withdraw
  • invariant_supplySharePriceAndDrawnIndexMonotonic
  • invariant_totalBorrowedLessThanSupplied_v1
  • invariant_totalBorrowedLessThanSupplied_v2
Shared by all active fuzzers (5)
  • assert_canary
  • iHub_mintFeeShares
  • invariant_canary
  • invariant_shouldNotBecomeLiquidatable
  • invariant_totalBorrowedLessThanSupplied_v0

Ground-truth known-bug mapping

Ground-truth mapping was not applied.

  • Reason: run commit 3f1db8ad1a756bd3ac01e6575205913d35691479 is not the evidence-pinned catalog revision 459b020058f4a65d18eb1481083b75c766340124
  • Catalog: benchmarks/known_bugs.json

No event was classified as a known bug. Raw event analysis remains available, but it must not be interpreted as a confirmed bug count.

Runner resource usage

  • Budget filter: 0.50h
  • Instances with metrics: 2
  • Total samples: 703

Per-fuzzer medians (across instances)

FuzzerInstancesCPU active avg (%)CPU active peak (%)Memory used avg (GiB)Memory used peak (GiB)Memory used avg (%)Memory used peak (%)
foundry193.13100.001.604.132.616.72
recon-fuzzer185.89100.003.174.805.157.80

Instance stats

InstanceFuzzerSamplesDuration (h)CPU active avg (%)CPU active peak (%)Memory avg (GiB)Memory peak (GiB)Memory avg (%)Memory peak (%)
i-0b7b9247f741264e6-foundry-git-02c05d9foundry3520.5093.13100.001.604.132.616.72
i-0b9e7f080e2499a17-recon-v0.4.18recon-fuzzer3510.5085.89100.003.174.805.157.80

Manifest

  • scfuzzbench_commit: 41025567e386f1eae2a42030e4c95c0430db46a3
  • target_repo_url: https://github.com/scfuzzbench/aave-v4-scfuzzbench
  • target_commit: 3f1db8ad1a756bd3ac01e6575205913d35691479
  • benchmark_type: property
  • instance_type: c6a.8xlarge
  • instances_per_fuzzer: 1
  • timeout_hours: 0.5
  • aws_region: us-east-1
  • ubuntu_ami_id: ami-052355af2a014bd2c
  • foundry_version: 1.7.2-dev
  • foundry_git_repo: https://github.com/foundry-rs/foundry
  • foundry_git_ref: 02c05d970d2801da0aef8b82486ce84b01ede36d
  • foundry_source_patch: scfuzzbench-throughput-progress-v1@sha256:2ee9e69b77c8007c78c816eb9ca791684aa5ecede0651b63f86cdd2e055eb17e
  • echidna_version: 2.3.3
  • medusa_version: 1.5.1
  • recon_version: 0.4.18
  • fuzzer_keys: echidna, foundry, medusa, recon-fuzzer

Artifacts

Fully static. Generated in CI from S3 run artifacts.