| Internet-Draft | FAST | August 2026 |
| Anderson | Expires 7 February 2027 | [Page] |
This document specifies the Framework for Autonomous Severity and Triage (FAST): an empirical standard for how autonomous offensive security agents classify vulnerabilities, decide whether to submit reports, and write those reports. FAST is derived from a corpus of real bug bounty reports and their program-rendered triage outcomes rather than from theoretical scoring frameworks. It is designed to be applied by both offensive agents that hunt for vulnerabilities and by defensive agents or human triagers that render verdicts, so both sides of the reporting relationship operate under the same rulebook. This document is submitted as an Independent Submission and invites comment from researchers, triagers, bug bounty platforms, and security teams.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 7 February 2027.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document.¶
Autonomous AI agents deployed for offensive security work consistently misclassify vulnerability severity. Agents grounded in theoretical scoring frameworks such as CVSS [CVSS] systematically over-report, misclassify medium-severity findings as critical, submit unproven leads as vulnerabilities, and produce reports that human triagers reject as informational. The result is queue noise on the triage side and lost payouts on the researcher side.¶
The root cause is not the agents themselves; it is the standards they have been given. Theoretical frameworks describe abstract risk. They do not reflect the specific patterns that bug bounty triagers accept or reject in practice. When an agent uses CVSS math to decide whether a finding is critical, it may arrive at a technically defensible number that a program's triage team would nevertheless reject.¶
FAST addresses this gap directly. Its rules are grounded in two sources of empirical evidence that reinforce each other: what hackers actually get paid for, and what security teams actually accept as a vulnerability worth remediating. Both signals derive from a corpus of real triage outcomes: reports that programs paid for at each severity level, reports that programs rejected as informational or not-applicable, and the full triager-side language used across those outcomes. Because the rules come from observed outcomes rather than abstract risk models, an agent that follows FAST produces classifications that match what triagers accept in practice.¶
FAST is designed for both sides of the reporting relationship. Offensive agents apply it when classifying and writing. Defensive agents apply it when rendering verdicts. When both sides use the same rulebook, disputes drop, queue noise drops, and payouts happen faster.¶
Several standards adjacent to autonomous AI agents exist as of 2026, but none address the specific question this document does: when an autonomous agent finds a vulnerability, how should it classify severity, decide whether to report, and write the report?¶
FAST is applicable to:¶
FAST is NOT:¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
The rules in this document are not derived from committee consensus or theoretical risk modelling. They are derived from a corpus of real vulnerability reports and the outcomes those reports received from program triage teams. This section describes the corpus, the extraction pipeline, and how the observations became rules. The methodology is transparent by design so that anyone with a comparable corpus can reproduce or challenge the derivation.¶
The corpus consists of the full submitted-report history of an active security researcher across a diverse portfolio of bug bounty and vulnerability disclosure programs, spanning multiple years. The corpus includes reports at every outcome state:¶
For each report, the corpus contains:¶
FAST is derived from two oracles built from the corpus.¶
The positive oracle consists of reports that a program accepted as a vulnerability at a given severity level. In this document, a program "accepting" a report means either paying a bounty or, on a non-paying program, marking it resolved with an assigned severity. Reports in the positive oracle define what a vulnerability at each severity level looks like in practice.¶
The negative oracle consists of reports the program rejected as not constituting a vulnerability. This includes reports marked informational, reports marked not-applicable, and reports otherwise closed without a vulnerability verdict. Reports in the negative oracle define what is NOT a vulnerability, and the boundary between positive and negative oracle defines the report gate specified in Section 5.¶
Duplicates carry no severity signal (they only indicate that another reporter submitted the same finding earlier) and are excluded from both oracles.¶
For every report in the corpus, a deterministic extraction pipeline produces a structured record. The extraction is rule-based and does not depend on interpretive machine-learning judgement. The features extracted include:¶
The extraction is written such that any comparable corpus can be processed the same way. It emits a structured record per report; the records collectively form the raw evidence base from which FAST is derived.¶
Rules are derived from the extracted records by four analyses.¶
Severity boundary analysis operates on the positive oracle. For each adjacent pair of severity levels (critical vs high, high vs medium, medium vs low), the analysis computes the differential distribution of every extracted feature. Features that appear disproportionately at the higher level define what distinguishes the higher level from the lower one. The severity tree in Section 6 is constructed to route findings to the level whose distinguishing features they exhibit.¶
Report-gate derivation operates on the boundary between the positive and negative oracles. The features whose presence correlates with payment (rather than rejection) become required elements of the report gate. The features whose absence correlates with rejection define the anti-patterns.¶
Chain-escalation analysis identifies records in the positive oracle where a base finding of one class was combined with proven access of a different type. The severity that the program actually awarded these combined findings drives the escalation table in Section 7. Base findings without proven chained access map to the severity that the base finding alone commanded, or to "not reportable" if the base finding is a lead.¶
Triager-language analysis operates on the free-text comments from the triager side of every activity timeline. Phrases corresponding to acceptance, rejection, upgrade, downgrade, and retest requests are catalogued. The observed frequency of upgrade language relative to downgrade and rejection language informs the rule in Section 6 that an agent MUST choose the lower level when uncertain: programs empirically upgrade well-evidenced reports far less often than they downgrade or close weakly-evidenced ones.¶
Writing-style extraction operates on the subset of the positive oracle consisting of reports paid at high or critical severity. It identifies section-ordering, section-naming, prose-tone, and proof-formatting patterns common to reports that reliably cleared triage. The report format in Section 8 is constructed from those patterns.¶
The following ratios and frequencies are drawn from the derivation corpus. They are anonymised, are not published as universal constants, and are provided as the empirical basis for specific rules in this document. Implementers applying FAST to their own corpus should expect the same directions of skew, though the magnitudes will vary.¶
Severity-boundary signals:¶
Report-gate signals:¶
Structural signals (positive oracle, high and critical only):¶
Triager-language signals:¶
Not every rule in FAST can be resolved from data alone. A small number of decisions require human judgement, and each such decision is documented so that a reader can distinguish empirically-derived rules from opinionated defaults. The judgement points in this version of FAST are:¶
Amendments to these judgement points require evidence from a comparable corpus that materially disagrees with the current resolution.¶
The extraction pipeline is deterministic and scriptable. Nothing in the derivation of FAST depends on hidden state, private tooling, or non-public data. Any researcher, security team, or program that possesses a corpus of reports with the same shape (submitted text, triage outcome, severity assignment, and activity timeline) can apply the same pipeline to their own corpus. The output of that process is a per-record feature set from which the same four analyses (severity boundary, report-gate, chain-escalation, triager-language) and the same writing-style extraction can be performed.¶
Contributors to FAST are not required to disclose confidential vulnerability reports. Aggregated feature frequencies and outcome-boundary statistics are sufficient to confirm or challenge the rules herein.¶
FAST is derived from a single researcher's corpus. That corpus is biased by target selection, testing style, and the specific programs the researcher engages with. Programs in industries not well represented in the corpus, or with idiosyncratic scoring norms, may diverge from the rules in this document. FAST is a strong default, not a universal law.¶
FAST is not a statistical proof. It is an empirical framework whose rules trace back to observed outcomes. Where the data is thin, the rules err toward the more conservative interpretation (see Section 6).¶
FAST is opinionated. Reasonable practitioners may disagree with specific rules. The Call for Comments in Section 14 is the mechanism by which such disagreement is expected to reshape future versions.¶
FAST rests on four prime directives that follow from the derivation methodology.¶
The distinction between a lead and a vulnerability is the single most important concept in FAST. In the derivation corpus, the majority of reports that programs marked informational or not-applicable were leads submitted before they had converted to vulnerabilities.¶
A finding is a lead if any of the following is true:¶
An agent's correct behaviour on finding a lead is to continue investigating until the lead converts to a vulnerability (proof of impact) or is exhausted. Leads MUST NOT be reported.¶
Every rule in FAST is grounded in two sources of empirical evidence:¶
Both signals derive from the same underlying decisions -- a program paying is a security team accepting -- but stating them explicitly matters because FAST governs both sides of the reporting relationship. Offensive agents optimise for the payout signal. Defensive agents optimise for the acceptance signal. Both converge on the same severity when the standard is applied correctly.¶
This grounding is empirical, not theoretical.¶
The primary driver of severity is the ACCESS the exploit lets the attacker achieve, combined with the vulnerability class:¶
FAST governs both offensive agents that produce reports and defensive agents that render verdicts. Before every classification and every submission, an agent MUST ask: "If I were the other side reading this, would I agree?" A NO answer indicates that either the evidence is missing (offensive side) or the criteria are being misapplied (defensive side).¶
Before an agent submits any report, it MUST answer YES to all six of the following gate conditions. If any answer is NO, the finding MUST NOT be submitted.¶
An agent that finds any answer to be NO MUST either continue investigating (if the missing element can plausibly be proven) or discard the finding as a dead lead. The agent MUST NOT submit hoping that the triager will accept a partial report.¶
An agent classifying a confirmed vulnerability MUST walk the following decision tree from top to bottom, stopping at the first level whose predicate is YES. Levels MUST NOT be skipped.¶
Does the exploit run arbitrary commands on the target's infrastructure?¶
YES: CRITICAL.¶
Examples: remote code execution, command injection, template injection, deserialisation leading to shell.¶
Does the exploit read customer PII, credentials, financial data, or employee data at scale (multi-user or mass-source)?¶
YES: CRITICAL.¶
Does the exploit permit account takeover of any user via a zero-click path, or accept forged authentication via a weak signing key, or grant any-account access via SAML/OAuth misconfiguration?¶
YES: CRITICAL.¶
Does the exploit permit one-click account takeover with a working PoC, reach an internal service and observe its response body via SSRF, extract bounded data via SQL injection, use a leaked credential to confirm non-mass data access, or exploit an IDOR on sensitive bounded resources?¶
YES: HIGH.¶
Is there confirmed stored cross-site scripting, reflected cross-site scripting (baseline; upgrade only when chained to account takeover with a working PoC), IDOR on non-sensitive resources, credential leak without demonstrated access yet, missing authentication on non-sensitive endpoints, or write access to non-sensitive records?¶
YES: MEDIUM.¶
Is the finding verbose error output leaking stack traces, version disclosure, missing security headers on non-sensitive pages, or an open redirect without chain?¶
YES: LOW.¶
Is this tool output only, CORS without victim PoC, "endpoint exists", OIDC discovery, subdomain takeover without working PoC, or any lead?¶
Not reportable.¶
When the correct level is ambiguous between two adjacent levels, the agent MUST choose the LOWER level. In the derivation corpus, programs upgrade well-evidenced reports substantially less often than they downgrade or close weakly-evidenced ones.¶
Findings compound. The severity of a chained exploit is defined by the FINAL demonstrated impact, not by the initial finding. The escalation patterns below are drawn directly from the positive oracle.¶
| Base finding | Chained proof | Result |
|---|---|---|
| Credential leak alone | (no chain) | Medium |
| Credential leak | + authenticated request returning customer PII | Critical |
| Credential leak | + authenticated access to non-sensitive data | High |
| SSRF (callback only) | (no data returned) | Medium |
| SSRF | + cloud metadata credentials retrieved | Critical |
| SSRF | + internal service response body observed | High |
| Weak JWT secret | (no forge) | Medium |
| Weak JWT secret | + forged token accepted, account access | Critical |
| Token in JS file | (no use) | Lead, not reportable |
| Token in JS file | + used to read production data | Critical |
| IDOR (mutable endpoint) | (no cross-user proof) | Lead, not reportable |
| IDOR | + read/write records of other users, sensitive data | Critical |
| IDOR | + read/write records of other users, non-sensitive data | High |
An agent MUST report the highest severity it can PROVE. It MUST NOT report the highest severity it can hypothesize.¶
The report structure below is required. It is derived from the section structure used in the majority of reports that cleared triage and received payment at high or critical severity in the derivation corpus.¶
Format: "{Impact} on {Target} via {Root Cause}".¶
The title MUST convey what the attacker can do, where, and how. It MUST NOT use hedging language such as "potential", "may allow", or "possibly". It MUST NOT consist only of a CVE identifier; the title must describe the demonstrated impact against the specific target.¶
The following section order is REQUIRED:¶
## Summary ## Steps to Reproduce ## Impact ## (optional) Remediation¶
An accepted variant places a "Supporting Material / References" section between Steps and Impact for attachments.¶
Agents SHOULD NOT invent additional sections. Content that does not fit one of the sections above either belongs inline within an existing section or does not belong in the report.¶
One to three sentences. States the vulnerability, the target, and the outcome. No preamble, no autobiography, no CVSS calculation.¶
A numbered list of concrete actions. It MUST include:¶
The steps MUST be complete enough that a triager can reproduce the exploit in under two minutes.¶
One paragraph. States the concrete consequence and the blast radius. The blast radius MUST be stated for reports classified High or Critical, either:¶
The Impact section MUST preemptively justify the claimed severity per the FAST decision tree. This is the primary downgrade defence: a triager should not have to infer the reporter's reasoning.¶
Included when the fix is obvious, at most one or two sentences. Not a full advisory. Skipped when the remediation is not obvious.¶
Same root cause across multiple endpoints constitutes one report, enumerated internally as POC 1, POC 2, and so on. Different root causes require separate reports.¶
Reports MUST NOT contain:¶
FAST is dual-audience. The classification criteria and report requirements apply to both offensive agents producing reports and defensive agents or human triagers rendering verdicts.¶
An offensive agent applying FAST produces reports that satisfy the report gate and follow the required format. A defensive agent applying FAST evaluates submitted reports against the same criteria and renders consistent verdicts.¶
When both sides apply the same standard:¶
Defensive-side application:¶
An agent submitting reports SHOULD follow these post-submission rules:¶
Programs publish scope policies. Agents MUST read the program policy for scope before conducting research.¶
An exception exists for cases where an out-of-scope asset demonstrates a systemic in-scope issue. Example: an OAuth misconfiguration on an out-of-scope subdomain that shares its identity provider configuration with in-scope applications. In such cases the report SHOULD:¶
If the program declines such a report on scope grounds, the reporter MUST accept the verdict.¶
FAST governs the behaviour of autonomous offensive security agents. Poor implementation or misapplication of FAST may result in:¶
Implementations SHOULD enforce operational boundaries:¶
FAST does not authorise any testing. All authorisation derives from the program's own scope and rules of engagement. An agent applying FAST outside authorised scope may commit computer misuse or equivalent offences under applicable law.¶
This document has no IANA actions.¶
This document is submitted as an Independent Submission and is explicitly a proposal, not a finished standard. It is expected to evolve with community feedback.¶
The authors invite comment from:¶
Comment is welcomed via the FAST repository issue tracker (once published) and via the IETF Internet-Draft process.¶
Substantive feedback SHOULD be grounded in evidence: the specific rule disagreed with, the outcome observed in the commenter's data, and the proposed amendment. Contributors do NOT need to disclose confidential vulnerability reports. Aggregated feature frequencies and outcome-boundary statistics are sufficient.¶
The extraction pipeline described in Section 3 is deterministic and reproducible on any comparable corpus.¶
FAST is built from the vulnerability research of Cale Anderson. Thanks to the triagers and program teams whose verdicts, over years of engagement, comprise the empirical corpus this standard is derived from.¶