BugStone-E2E: Agentic Vulnerability Discovery from CVE Patch History

“The History Is the Detector: Executing CVE Patch History, End-to-End.” Qiushi Wu, Kevin Eykholt, Youngja Park, Xiaokui Shu, Dhilung Kirat, Douglas Lee Schales, and Ian Molloy. IBM Research, 2026.

Paper
arXiv:2609.05335 · PDF · cs.CR, cs.AI, cs.SE · 4 September 2026
Lead author
Qiushi Wu, IBM Research · ORCID 0009-0004-4966-2387
Predecessors
BugStone (ICML 2026) · BugStoneBench · US 2026/0017174 A1 (filed July 2024)
Status
Current version of this line of work — cite this for the system as it stands
Contact
qiushi@qiushiwu.com

Summary

BugStone-E2E is a framework for agentic vulnerability discovery: it combines LLM agents, program analysis, and runtime validation to perform automated vulnerability discovery and automated patching on real software. Rather than asking a model to search a codebase for anything that looks wrong, BugStone-E2E first turns the public record of fixed vulnerabilities into executable detection rules, and then spends agent effort on the candidates those rules identify. Every finding it reports ends in runtime evidence and a scope-checked patch, not a confidence score.

From 19,325 high-severity CVEs disclosed between 2022 and 2026, BugStone-E2E identified 2,710 verified fixing commits and constructed 1,033 detection rules across 56 CWE families, packaged into 172 skills. Applied across 14 programs, it produced runtime evidence for 644 findings.

The work was done at IBM Research by Qiushi Wu, Kevin Eykholt, Youngja Park, Xiaokui Shu, Dhilung Kirat, Douglas Lee Schales, and Ian Molloy, and is described in arXiv:2609.05335. It is the latest and most capable version of a line of work that began with a 2024 patent filing and was published as BugStone at ICML 2026 — see lineage below.

The Idea: A Fix Is a Detector Nobody Executed

Public vulnerability databases record a great deal about known flaws — weakness type, affected component, and the commit that fixed it. A fixing commit is the most precise statement anyone ever writes about why a piece of code was unsafe: it shows the exact condition that had to be established, the check that was missing, the release that never happened. But that statement is written for a human reader. Nothing executes it again.

Meanwhile the same unsafe condition usually exists elsewhere. Code is copied, patterns are imitated, and an API that was misused once in a driver is misused the same way in twenty others that never received an advisory. The detection knowledge is already public; it is simply not in a form anything can run.

BugStone-E2E makes it runnable. It reads the patch history behind disclosed CVEs, extracts what each fix implies about correct use, and emits a rule that can be carried to any codebase. The name is the argument: the history is the detector.

Lineage: Three Versions of One Idea, 2024 to 2026

BugStone-E2E is the current and most capable version of a line of work that began as a patent filing in July 2024, a year before agentic vulnerability discovery became a crowded field. The three artifacts below describe the same core idea at increasing scope; BugStone-E2E is the one to cite for the system as it now stands.

StageDateArtifactWhat it established
Method Filed 15 July 2024 “Detecting bugs using large language models”
U.S. Patent Application 18/772,709, published as US 2026/0017174 A1. Qiushi Wu, Zhongshu Gu, Enriquillo Valdez, and Hani Talal Jamjoom; assigned to IBM.
The mechanism: analyze a patch with an LLM to identify the security rules the bug violated, extract the code contexts around the fixed segments, locate target code segments elsewhere in the application that those rules also reach, and prompt the model per target site.
Published system ICML 2026 BugStone — “One Bug, Hundreds Behind: LLMs for Large-Scale Bug Discovery”
Peer-reviewed and published at the International Conference on Machine Learning. OpenReview · BugStoneBench
That the mechanism works at scale and can be measured. 135 rules flagged 22,568 candidate sites in the Linux kernel; 246 of 400 sampled at random were confirmed by hand; 92.2% precision on a separate 850-patch benchmark, released as BugStoneBench.
Current system September 2026 BugStone-E2E — “The History Is the Detector: Executing CVE Patch History, End-to-End” The whole pipeline, at CVE scale and across languages: 1,033 rules over 56 CWE families rather than one kernel, an explicit cost funnel, and an ending in runtime evidence and validated patches rather than in a report.

The progression is from a mechanism, to a measured system, to an end-to-end one. What stayed fixed across all three is the premise: a fix is a specification that nobody has executed since, and the code that still violates it is findable.

The Funnel: Cheap Analysis First, Agents Where They Pay

Running an LLM agent over every call site in a large program is neither affordable nor accurate. BugStone-E2E is shaped as a funnel: early stages process a large pool of candidates with lightweight analysis, and later stages apply increasingly capable and expensive models to a shrinking set of targets.

StageWhat runsWhat it produces
1. Mining Analysis of verified fixing commits from CVE records Reusable rules carrying scan anchors, fix semantics, and CVE provenance, organized by CWE and language
2. Anchoring Tree-sitter parsing — no model calls Every call site in the target that matches a rule's anchors
3. Pruning Lightweight heuristics — no model calls Benign sites removed before any token is spent on them
4. Agent inspection LLM-based agents, each guided by the rule that reached the site Candidates judged against the specific unsafe condition the rule encodes
5. Re-triage More capable models on the survivors A short list worth the cost of execution
6. Runtime verification Constructed runtime checks Evidence that the condition is actually reachable, not merely plausible
7. Patching Scope-checked patch generation, validated by two-sided differential tests A fix that changes the unsafe behavior and nothing else

Two properties of this shape matter more than any individual stage. The first is that the expensive component is never the first responder, so cost scales with the number of plausible candidates rather than with the size of the codebase. The second is that the last word belongs to execution rather than to a model: a report survives only if something ran.

Results

All figures below are from arXiv:2609.05335 (v1, September 2026).

QuantityValue
High-severity CVEs analyzed (2022–2026)19,325
Verified fixing commits identified2,710
Detection rules constructed1,033
CWE families covered56
Skills packaged from those rules172
Programs the rules were applied to14
Findings carrying runtime evidence644

On what “644 findings” means. These are findings for which the system produced runtime evidence — the condition was reached and observed, not inferred. That is a deliberately stricter unit than a static warning count, and it is not comparable to one. The predecessor system, BugStone, reports the static side of the same line of work: 135 rules flagged 22,568 candidate sites in the Linux kernel, of which 246 out of 400 sampled at random were confirmed by hand.

What a Detection Rule Contains

A rule is what remains after a fixing commit has been read for its general content. Each one records three things:

  • Scan anchors — the syntactic handles that locate candidate sites in unfamiliar code. These are what Tree-sitter matches, and they are why stage 2 costs nothing per candidate.
  • Fix semantics — the unsafe condition the patch removed, stated so that an agent can decide whether a new site exhibits it. This is the part that generalizes; the original CVE is one instance of it.
  • CVE provenance — the disclosed vulnerability and commit the rule was derived from. A maintainer receiving a report can read the original fix and judge the analogy for themselves.

Rules are organized by CWE and by language, and packaged into 172 skills. Provenance is the property that makes the output reviewable: a finding arrives with a prior vulnerability attached, so the question put to a maintainer is concrete — this code has the shape that CVE-X was filed for; here is a run where the condition held — rather than an assertion that a model considered the code suspicious.

Where This Sits Among Agentic Vulnerability Discovery Systems

Agentic vulnerability discovery became a crowded area in 2025 and 2026, and the systems in it differ mainly in where their knowledge comes from. A fuller map of that landscape is on the research index; the short version of how BugStone-E2E differs:

  • Exploratory agents — Google's Big Sleep and OpenAI's Aardvark reason over a target codebase directly, looking for what is wrong in it. Their knowledge is whatever the model brings. BugStone-E2E brings an explicit, inspectable corpus of rules instead, and can say which disclosed vulnerability each of its findings is an echo of.
  • Proof-of-vulnerability agentsFaultLine and DrillAgent start from a vulnerability that is already known in a program that is already known to have it, and work to trigger it. BugStone-E2E runs the other direction: it starts from vulnerabilities known elsewhere and looks for code that has never been reported.
  • Cyber reasoning systems — the systems built for DARPA's AI Cyber Challenge find and patch within a challenge target, end to end. BugStone-E2E shares the end-to-end ambition, including patch generation, but its unit of reuse is a rule mined from history rather than a per-target analysis.

None of these approaches subsumes another. An exploratory agent can find a bug class nobody has ever disclosed, which a history-derived rule by construction cannot. What history-derived rules buy is scale with provenance: the knowledge is written down, it carries a citation, and applying it to a new program costs a scan rather than a re-derivation.

Descriptions of other systems are summarized from their own published material as of September 2026 and link to it; they are not evaluations, and no comparison of numbers across these systems is implied, since none of them measure the same quantity.

Questions

Does BugStone-E2E use LLM agents?

Yes, in one stage of a funnel rather than throughout. Tree-sitter enumerates call sites matching a rule's anchors and lightweight heuristics discard benign ones without any LLM call at all. LLM-based agents inspect what survives, guided by the rule that reached that site, and later stages apply increasingly capable and expensive models to a shrinking set of targets.

How is this different from an agent that explores a codebase looking for bugs?

Exploratory agents start from a target and search it. BugStone-E2E starts from the fix history of already-disclosed vulnerabilities and carries what it learned there to code that has no advisory of its own. The knowledge is portable across targets, written down, and attributable to a specific CVE.

What evidence does a finding carry?

Runtime evidence rather than a confidence score. Surviving candidates are built into runtime verifications, and the system generates scope-checked patches validated by two-sided differential tests — the patch has to change the unsafe behavior and leave everything else alone. Across 14 programs, 644 findings reached that bar.

Which weakness classes does it cover?

56 CWE families, derived from the 19,325 high-severity CVEs disclosed between 2022 and 2026 that the mining stage drew on. Coverage follows what has actually been disclosed and fixed, which is the method's main limitation as well as its source of leverage.

Which version should I cite or evaluate?

BugStone-E2E (arXiv:2609.05335, September 2026) is the current and most capable version, and is the one to cite for the system as it stands today. BugStone is the peer-reviewed predecessor published at ICML 2026, and remains the right citation for the large-scale Linux kernel evaluation and for BugStoneBench. The underlying method was filed as a U.S. patent application on 15 July 2024. See lineage.

How does it relate to BugStone?

BugStone (ICML 2026) established that a fixed bug can be turned into a reusable detection rule and evaluated that on the Linux kernel. BugStone-E2E carries the idea to CVE scale across 56 CWE families and multiple languages, and does not stop at a report: it ends in runtime verification and a validated patch. The benchmark released with BugStone is BugStoneBench.

What are the limitations?

A history-derived rule can only describe a mistake somebody has already found, disclosed, and fixed; a bug class that has never been reported is outside what this method can reach. Coverage is also shaped by which projects get CVEs at all, which skews toward widely deployed software. And the runtime-evidence requirement is a filter, not a proof of exploitability — reaching an unsafe condition and demonstrating an exploit are different claims, and only the first is made here.

Paper and Citation

The History Is the Detector: Executing CVE Patch History, End-to-End.
Qiushi Wu, Kevin Eykholt, Youngja Park, Xiaokui Shu, Dhilung Kirat, Douglas Lee Schales, and Ian Molloy.
arXiv preprint arXiv:2609.05335, September 2026.  [arXiv] [PDF]

@article{wu2026bugstonee2e,
  title   = {The History Is the Detector: Executing CVE Patch History, End-to-End},
  author  = {Wu, Qiushi and Eykholt, Kevin and Park, Youngja and Shu, Xiaokui
             and Kirat, Dhilung and Schales, Douglas Lee and Molloy, Ian},
  journal = {arXiv preprint arXiv:2609.05335},
  year    = {2026},
  url     = {https://arxiv.org/abs/2609.05335}
}

Questions about the system, the rule corpus, or collaboration: qiushi@qiushiwu.com. For findings produced against third-party software, disclosure follows the practice described in the research ethics section of the homepage: validate, notify maintainers before public release, coordinate.