Skip to content

Run gh-30146496505-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-fuzzer214 [13,14]15 [15,15]
medusa214 [14,15]14 [14,15]
foundry213 [13,13]14 [14,15]
echidna210 [9,11]13 [12,14]

Overall metrics ​

FuzzerAUC (norm)Plateau timeLate discovery shareFinal medianFinal IQR
recon-fuzzer0.9143.50h0.033150.00
medusa0.9450.40h0.000140.50
foundry0.8733.10h0.034140.50
echidna0.7632.00h0.000131.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%
medusa0.00h0.00h0.10h100.0%100.0%100.0%
foundry0.00h0.10h0.10h100.0%100.0%100.0%
echidna0.10h0.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-fuzzer222246.17 [2196.42,2295.92]22377684751.50 [2357361316.75,2398008186.25]
medusa225134.00 [5113.00,5155.00]21467660424.00 [1461080946.50,1474239901.50]
foundry2214739.50 [13570.08,15908.93]25942870567.53 [5754299146.47,6131441988.60]
echidna221161.42 [1120.59,1202.25]29812304278.50 [9755860579.75,9868747977.25]

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/a2105.50 [104.75,106.25]
medusa2251.00 [51.00,51.00]2146.00 [145.50,146.50]
foundry20n/a20.00 [0.00,0.00]
echidna20n/a262.00 [61.50,62.50]

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 (67 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/21229568
foundryunavailable0/200
medusaavailable2/2708667
recon-fuzzeravailable2/22092867
Most common saved-corpus selectors ​
FuzzerSelectorFunctionCallsShare
echidna0x3ba851casetStreamsWithClamping(uint8,uint8,uint160,uint32,uint32,int128)2331.90%
echidna0x13a600d0addStream(uint8,uint8,uint160,uint32,uint32,int128)2271.85%
echidna0x662fe867invariantAmtPerSecVsMinAmtPerSec(uint8,uint256)2231.81%
echidna0x1a042ae7invariant_canary()2171.76%
echidna0xf56082cesetStreamBalanceWithClamping(uint8,int128)2131.73%
echidna0x19ca05b3testSplittableAfterSplit(uint8)2121.72%
echidna0x3b0786f0receiveStreamsAllCycles(uint8)2081.69%
echidna0x1a3ed582setStreams(uint8,uint8,uint160,uint32,uint32,int128)2071.68%
echidna0x45b9b0batestReceiveStreamsViewVsActual(uint8,uint32)2061.68%
echidna0x4e0ad60btestSqueezableAmountCantBeWithdrawn(uint8,uint8)2041.66%
medusa0x13a600d0addStream(uint8,uint8,uint160,uint32,uint32,int128)1962.77%
medusa0x0e8df0d4testSqueeze(uint8,uint8)1712.41%
medusa0xdf65cad7testSetSplitsShouldNotRevert(uint8,uint8,uint32)1562.20%
medusa0xf89367f3testReceiversReceivedSplit(uint8)1512.13%
medusa0x441581e7setSplitsWithClamping(uint8,uint8,uint32)1462.06%
medusa0x4e0ad60btestSqueezableAmountCantBeWithdrawn(uint8,uint8)1462.06%
medusa0xfa1227cdtestSetStreamBalance(uint8,int128)1422.00%
medusa0x462664e4testRemoveStreamShouldNotRevert(uint8,uint256)1371.93%
medusa0x662fe867invariantAmtPerSecVsMinAmtPerSec(uint8,uint256)1331.88%
medusa0x1ba3a23ctestReceiveStreamsViewConsistency(uint8,uint32)1301.83%
recon-fuzzer0xed0c06d6removeAllSplits(uint8)4812.30%
recon-fuzzer0x8319b8dbreceiveStreamsSplitAndCollectToSelf(uint8)4222.02%
recon-fuzzer0x6cc8862atestGiveShouldNotRevert(uint8,uint8,uint128)4121.97%
recon-fuzzer0x82ce0f6dtestReceiveStreamsShouldNotRevert(uint8)4041.93%
recon-fuzzer0xf89367f3testReceiversReceivedSplit(uint8)3831.83%
recon-fuzzer0x30387686testSplitShouldNotRevert(uint8)3801.82%
recon-fuzzer0x3ba851casetStreamsWithClamping(uint8,uint8,uint160,uint32,uint32,int128)3741.79%
recon-fuzzer0xed2ce2d6squeezeWithFuzzedHistory(uint8,uint8,uint256,bytes32)3681.76%
recon-fuzzer0x218be192invariantSumAmtDeltaIsZero(uint8)3641.74%
recon-fuzzer0x32dc4442testSqueezeWithFullyHashedHistory(uint8,uint8)3541.69%
Selector diagnostic findings ​
  • INFO: i-0d48a81d5d8532c0e-recon-v0.4.18: peer-heuristic gap (diagnostic, not ground truth): absent 1 selector(s): 0x21d76db7
  • INFO: i-0eeac9664aa2ffaf4-recon-v0.4.18: peer-heuristic gap (diagnostic, not ground truth): absent 1 selector(s): 0x21d76db7
Selector telemetry limitations ​
  • i-081cdf71adeaf688e-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-0e51c013e3ab1511f-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-fuzzermedusa1514.53.00.750large0.61711.0000no
recon-fuzzerfoundry1514.53.00.750large0.61711.0000no
recon-fuzzerechidna15134.01.000large0.22071.0000no
medusafoundry14.514.52.00.500negligible1.00001.0000no
medusaechidna14.5133.50.875large0.41421.0000no
foundryechidna14.5133.50.875large0.41421.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: 114 / 114
  • Unique invariants: 15

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
echidna15
foundry15
medusa15
recon-fuzzer15

High-level overlap ​

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

Grouped invariants ​

Exclusive to echidna (0)

None.

Exclusive to foundry (0)

None.

Exclusive to medusa (0)

None.

Exclusive to recon-fuzzer (0)

None.

Shared by all active fuzzers (15)
  • assert_canary
  • invariantAccountingVsTokenBalance
  • invariantWithdrawAllTokensShouldNotRevert
  • invariant_canary
  • testAddStreamShouldNotRevert
  • testBalanceAtInFuture
  • testReceiveStreamsShouldNotRevert
  • testSetStreamBalanceShouldNotRevert
  • testSetStreamBalanceWithdrawAllShouldNotRevert
  • testSetStreamsShouldNotRevert
  • testSqueezableAmountCantBeUndone
  • testSqueezableAmountCantBeWithdrawn
  • testSqueezableVsReceived
  • testSqueezeWithDefaultHistoryShouldNotRevert
  • testSqueezeWithFuzzedHistoryShouldNotRevert

Ground-truth known-bug mapping ​

Ground-truth mapping was not applied.

  • Reason: run commit 0ae8bd881e3c4f4a254f3cf92091e9997c5e88be is not the evidence-pinned catalog revision c50d160ead6bf82b1d1071e853dc74da0b23f595
  • 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: 22367

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 (%)
echidna296.0698.1621.1623.5469.0576.82
foundry299.91100.001.001.373.274.46
medusa298.3699.281.331.734.345.64
recon-fuzzer268.6598.847.5010.3824.4833.87

Instance stats ​

InstanceFuzzerSamplesDuration (h)CPU active avg (%)CPU active peak (%)Memory avg (GiB)Memory peak (GiB)Memory avg (%)Memory peak (%)
i-0537465ab58fd927d-echidna-v2.3.2echidna27754.0096.1698.1821.0523.3968.6976.33
i-0a6a8a9d574c3af9e-echidna-v2.3.2echidna27754.0095.9698.1521.2723.6969.4177.32
i-081cdf71adeaf688e-foundry-git-02c05d9foundry27993.9899.91100.001.001.443.264.68
i-0e51c013e3ab1511f-foundry-git-02c05d9foundry27973.9899.90100.001.011.303.294.24
i-0392b7426b8d0e6f3-medusa-v1.5.1medusa28104.0098.3299.441.321.794.315.84
i-0f36cf811fb0f5fda-medusa-v1.5.1medusa28114.0098.4199.111.341.674.365.45
i-0d48a81d5d8532c0e-recon-v0.4.18recon-fuzzer28054.0060.8997.816.619.3621.5830.55
i-0eeac9664aa2ffaf4-recon-v0.4.18recon-fuzzer27954.0076.4299.888.3911.4027.3737.18

Manifest ​

  • scfuzzbench_commit: 3d834b12c5d851968933acddd10ef5429228fb5d
  • target_repo_url: https://github.com/scfuzzbench/drips-fuzzing-scfuzzbench
  • target_commit: 0ae8bd881e3c4f4a254f3cf92091e9997c5e88be
  • 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.