qualitylab

Feedback latency · Adversarial exposure

Fuzz continuously, and read the bug counts sceptically

tier II/cost to adopt: high/active

Coverage-guided fuzzing against a continuously built target finds crash-class defects quickly and cheaply once wired in — median five days to detection — but the count of bugs found overstates the count of vulnerabilities prevented by roughly two orders of magnitude.

Do this firstRun the suite under sanitizers, not just under the compiler

Point a generator at a build, keep it running, triage what falls out.

Two numbers set expectations correctly. Detection and repair are fast: a median of five days to find a regression and about five days to fix it. And the yield is mostly not security: the same corpus produced 23,907 bugs and 98 CVEs. Most of what fuzzing finds is availability-class — crashes, hangs, memory exhaustion — which is worth fixing and is not the thing the practice is usually sold on.

The triage cost is real and under-reported. Thirteen per cent of the bugs in that corpus were flaky, and flaky ones are overwhelmingly never fixed — 86% remained open, against 12% for the rest.

The decoy

A bug count. It is the number every fuzzing programme reports and it is a poor proxy for the thing you care about — of 23,907 bugs found across 316 projects in the largest public corpus, 98 received a CVE. Under half a percent.

Evidence

Last reviewed 2026-08-19.