Skip to content

Run gh-30059118265-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 TimeSeq/s Over TimeTx/s Over TimeGas/s Over TimeCPU Usage Over TimeMemory Usage Over Time

Report ​

Fuzzer Benchmark Report (from bug-count CSV) ​

  • Time budget: 4.00h

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]) ​

FuzzerRuns1h4h
recon-fuzzer212 [11,12]12 [11,12]
echidna210 [9,10]10 [10,10]
medusa26 [5,6]7 [6,8]
foundry26 [6,7]6 [6,7]

Overall metrics ​

FuzzerAUC (norm)Plateau timeLate discovery shareFinal medianFinal IQR
recon-fuzzer0.9080.80h0.000120.50
echidna0.7681.30h0.000101.00
medusa0.4773.50h0.07171.00
foundry0.5260.30h0.00060.50

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%
echidna0.10h0.10h0.10h100.0%100.0%100.0%
medusa0.00h0.10h0.70h100.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-fuzzer2230092.26 [29865.29,30319.22]24311456929.00 [4292418785.00,4330495073.00]
echidna221681.04 [1678.31,1683.77]216184719816.00 [15275081743.50,17094357888.50]
medusa221214.00 [1205.50,1222.50]2140092861.50 [140017351.25,140168371.75]
foundry228730.08 [7265.51,10194.66]27081539689.95 [6703134535.82,7459944844.09]

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-fuzzer20n/a293.50 [92.75,94.25]
echidna20n/a2101.50 [99.75,103.25]
medusa2212.00 [12.00,12.00]2230.50 [229.25,231.75]
foundry20n/a20.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: available (23 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
echidnaavailable2/22024644
foundryunavailable0/200
medusaavailable2/22218266
recon-fuzzeravailable2/21861632
Most common saved-corpus selectors ​
FuzzerSelectorFunctionCallsShare
echidna0x20bea9ddiHub_mintFeeShares_ASSERTION_MINT_FEE_SHARES_PPS_CHANGE(uint256)8714.30%
echidna0x5c9d5cb7iSpoke_supply_ASSERTION_SUPPLY_DOS(uint256,uint256)8154.03%
echidna0x5d55852eiSpoke_addDynamicReserveConfig(uint256,(uint16,uint32,uint16))8094.00%
echidna0xbb1b32f0invariant_totalBorrowedLessThanSupplied_v1()7833.87%
echidna0xca2664f9iSpoke_setUsingAsCollateral(uint256,bool)7333.62%
echidna0x6801b82eswitchActor(uint256)7213.56%
echidna0x77494a8einvariant_hubAddedSharesMatchesSpokeSum()6793.35%
echidna0x25a00713invariant_shouldNotBecomeLiquidatable()6753.33%
echidna0x5b00e9f0iSpoke_updateUserRiskPremium()6753.33%
echidna0x27dd847ciSpoke_liquidationCall_ASSERTION_LIQUIDATION_CALL_DOS(uint256,uint256,uint256,uint256,bool)6713.31%
medusa0xb722c6ediHub_updateAssetConfig(uint256,(address,uint16,address,address),(uint16,uint32,uint32,uint32))12155.48%
medusa0x5d55852eiSpoke_addDynamicReserveConfig(uint256,(uint16,uint32,uint16))10754.85%
medusa0xf24a44c9assert_canary_ASSERTION_CANARY(uint256)10524.74%
medusa0x5c9d5cb7iSpoke_supply_ASSERTION_SUPPLY_DOS(uint256,uint256)10204.60%
medusa0xca2664f9iSpoke_setUsingAsCollateral(uint256,bool)10154.58%
medusa0x4b430dd2iSpoke_updateDynamicReserveConfig(uint256,uint24,(uint16,uint32,uint16))10104.55%
medusa0x1be3427bswitch_spoke(uint256)9824.43%
medusa0xdfbe4d80iSpoke_repay_ASSERTION_REPAY_DOS(uint256,uint256)9744.39%
medusa0x20bea9ddiHub_mintFeeShares_ASSERTION_MINT_FEE_SHARES_PPS_CHANGE(uint256)9694.37%
medusa0xf9f2ec54iSpoke_borrow(uint256,uint256)9614.33%
recon-fuzzer0xca2664f9iSpoke_setUsingAsCollateral(uint256,bool)7474.01%
recon-fuzzer0x8aa3bc37switch_oracle(uint256)6893.70%
recon-fuzzer0x6801b82eswitchActor(uint256)6873.69%
recon-fuzzer0x27dd847ciSpoke_liquidationCall_ASSERTION_LIQUIDATION_CALL_DOS(uint256,uint256,uint256,uint256,bool)6703.60%
recon-fuzzer0x25a00713invariant_shouldNotBecomeLiquidatable()6653.57%
recon-fuzzer0xf9f2ec54iSpoke_borrow(uint256,uint256)6653.57%
recon-fuzzer0x77494a8einvariant_hubAddedSharesMatchesSpokeSum()6453.46%
recon-fuzzer0xd3fabfaciSpoke_withdraw_ASSERTION_WITHDRAW_DOS(uint256,uint256)6423.45%
recon-fuzzer0x4896f9c3iHub_updateSpokeConfig(uint256,uint256,(uint40,uint40,uint24,bool,bool))6393.43%
recon-fuzzer0x44a0611biHub_setInterestRateData(uint256,(uint16,uint32,uint32,uint32))6333.40%
Selector diagnostic findings ​
  • INFO: i-034cb6720a6436703-recon-v0.4.18: peer-heuristic gap (diagnostic, not ground truth): absent 1 selector(s): 0xb0464fdc
  • INFO: i-0ed8d9bccde77b824-recon-v0.4.18: peer-heuristic gap (diagnostic, not ground truth): absent 1 selector(s): 0xb0464fdc
Selector telemetry limitations ​
  • i-01db3533f5c6c560f-foundry-git-02c05d9: Foundry selector distribution is unavailable because no persisted corpus was present; failure-event selectors are intentionally not used as a distribution
  • i-0467b881cc0070621-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 6 comparison(s). Significance level: alpha = 0.05.

Warnings:

  • One or more fuzzers have fewer than 5 runs. Statistical power may be limited.
Fuzzer AFuzzer BMedian AMedian BU statisticA12 (A over B)Effect magnitudep-valuep (corrected)Significant
recon-fuzzerechidna11.5103.50.875large0.41421.0000no
recon-fuzzermedusa11.574.01.000large0.33331.0000no
recon-fuzzerfoundry11.56.54.01.000large0.33331.0000no
echidnamedusa1074.01.000large0.33331.0000no
echidnafoundry106.54.01.000large0.33331.0000no
medusafoundry76.52.50.625small1.00001.0000no

No pairwise comparison reached significance after Bonferroni correction.

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: 4.00h
  • Events considered: 70 / 70
  • Unique invariants: 12

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
echidna11
foundry7
medusa9
recon-fuzzer12

High-level overlap ​

  • Shared by all active fuzzers: 6
  • Exclusive to echidna: 0
  • Exclusive to foundry: 0
  • Exclusive to medusa: 0
  • Exclusive to recon-fuzzer: 1

Grouped invariants ​

Exclusive to echidna (0)

None.

Exclusive to foundry (0)

None.

Exclusive to medusa (0)

None.

Exclusive to recon-fuzzer (1)
  • iSpoke_supply
Shared by all active fuzzers (6)
  • assert_canary
  • iHub_mintFeeShares
  • invariant_canary
  • invariant_shouldNotBecomeLiquidatable
  • invariant_totalBorrowedLessThanSupplied_v0
  • invariant_totalBorrowedLessThanSupplied_v1

Top shared subsets (top 3 by size):

echidna, medusa, recon-fuzzer (3)
  • iSpoke_liquidationCall
  • iSpoke_repay
  • iSpoke_withdraw
echidna, foundry, recon-fuzzer (1)
  • invariant_totalBorrowedLessThanSupplied_v2
echidna, recon-fuzzer (1)
  • invariant_supplySharePriceAndDrawnIndexMonotonic

Ground-truth known-bug mapping ​

Ground-truth mapping was not applied.

  • Reason: run commit edd6c82721512540c8c90e7a36a4a8e19fd7bdf3 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: 4.00h
  • Instances with metrics: 8
  • Total samples: 22394

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 (%)
echidna294.9997.6519.1619.7662.5364.47
foundry299.15100.001.053.793.4112.35
medusa298.1099.641.553.765.0712.27
recon-fuzzer298.27100.004.176.2013.6120.23

Instance stats ​

InstanceFuzzerSamplesDuration (h)CPU active avg (%)CPU active peak (%)Memory avg (GiB)Memory peak (GiB)Memory avg (%)Memory peak (%)
i-01c1f3bff75608e5e-echidna-v2.3.2echidna27834.0094.7197.4319.2619.9762.8465.15
i-024af362fccb49540-echidna-v2.3.2echidna27834.0095.2697.8619.0719.5562.2263.78
i-01db3533f5c6c560f-foundry-git-02c05d9foundry28094.0099.14100.001.053.863.4212.61
i-0467b881cc0070621-foundry-git-02c05d9foundry28094.0099.16100.001.043.713.4112.09
i-05df0296ef97b51ba-medusa-v1.5.1medusa28074.0098.1099.631.553.755.0712.23
i-0ebbecf47656b1194-medusa-v1.5.1medusa28084.0098.1199.651.553.775.0712.32
i-034cb6720a6436703-recon-v0.4.18recon-fuzzer27984.0098.27100.004.176.2613.6220.42
i-0ed8d9bccde77b824-recon-v0.4.18recon-fuzzer27974.0098.27100.004.176.1413.5920.04

Manifest ​

  • scfuzzbench_commit: 00775ce0bd3a33b7bf8e9ff213e2e7c235163220
  • target_repo_url: https://github.com/scfuzzbench/aave-v4-scfuzzbench
  • target_commit: edd6c82721512540c8c90e7a36a4a8e19fd7bdf3
  • benchmark_type: property
  • instance_type: c6a.4xlarge
  • instances_per_fuzzer: 2
  • timeout_hours: 4
  • 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.2
  • 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.