HackerOne bug report template

The parts HackerOne’s quality guide asks for, in its order, with the asset, weakness and severity the form wants up front. The preview is the last edit you get, so the draft has to be right before it is pasted.

Download .md

Rules checked 2 Oct 2026 · 9 sources

The template

HackerOne’s form takes the asset, the weakness and the severity as separate fields before the write-up. The title line goes in the title field. Videos are attached as files.

Platformasked for in HackerOne’s published guidance. Addedanswers the two objections that close reports late: overclaiming and known issues.

hackerone.md9 sections
01Platform

Title

Vulnerability type, where it is, what it allows. HackerOne’s own example sets a stored XSS in a named field, with its effect, against a bare vulnerability class.

Vulnerability type in feature or endpoint allows what the attacker does

02Platform

Summary

The form asks for asset, weakness and severity before the write-up. Since 21 September 2026 a severity is required on every programme that has not opted out. Use the calculator the programme lists: CVSS 3.0, 3.1, 4.0 or manual.

  • Asset: the in-scope asset, exactly as the programme lists it
  • Weakness: the weakness you selected on the form
  • Severity: None, Low, Medium, High or Critical, vector CVSS vector in the version the programme uses
  • Tested on: URL or build, version, release or commit, date and time in UTC

One paragraph: what the vulnerability is and what an attacker gets from it.

03Platform

Steps to Reproduce

Numbered steps a triager follows without asking a question. Give the URL, the parameter and the role of every account. A report left in Needs More Info for more than 30 days closes as Informative.

Accounts: attacker account and its role, victim account and its role. Both are test accounts you own.

  1. Log in as the attacker account and open the URL.
  2. Send this request, with the parameter and the value.
  3. Observe the response or the state change, with the exact value.
04Platform

Expected vs Actual Behavior

One line each. The expected line cites where the rule comes from: documentation, the permission model, the programme’s own policy.

  • Expected: what the application should do, and the source of that rule
  • Actual: what it does
05Platform

Impact

What an attacker does with it, to whom, at what scale. Not Applicable is the state for a report whose security implications were not demonstrated, and it costs 5 reputation. Argue each CVSS metric you set: self sign-up means Privileges Required is None, and an unpredictable ID means Attack Complexity is High until you show how the ID is obtained.

What the attacker reads, changes or takes over, for which users, and how many.

  • Preconditions: none, or what the attacker needs first
  • User interaction: none, or what the victim has to do
  • Mitigations already in place that do not stop it: list
06Platform

Supporting Material

The request and the response, or the command and its output, in code blocks. Attach screenshots and recordings as files. A link to a hosted video is not accepted.

{The request}
{The response, trimmed to the part that proves the point}

Attached: file names of screenshots or the recording

07Platform

Remediation

Optional on HackerOne. Include it when you know where the check belongs.

The check that is missing and where it belongs.

08Added

Limits and non-claims

Say where testing stopped. The platform standards require testing to stop the moment sensitive personal data is exposed, and the core ineligible list closes findings that rest on unlikely interaction.

  • Testing stopped at: the point you stopped, for example after reading one record of your own second account
  • Not claimed: what this report does not say, for example no access to other tenants
  • Depends on: browser, configuration or feature flag the behaviour needs
09Added

Known issues checked

A report on something the programme already knows closes as Duplicate, or as Informative when the issue is listed on its security page. Name the nearest known item and state the difference.

  • Programme policy, exclusions and known issues: date checked, the nearest item, why this differs
  • Disclosed reports on this programme: the nearest report, why the root cause or the endpoint differs
  • Core ineligible findings: the nearest category, and the demonstrated impact that takes this out of it
Markdown sourcehackerone.md
hackerone.md
> HackerOne report template from https://bountyoperator.com/templates/hackerone. Platform rules checked 2 Oct 2026.
> Replace every {placeholder}. Delete this note before you submit.

# {Vulnerability type} in {feature or endpoint} allows {what the attacker does}

## Summary

- Asset: {the in-scope asset, exactly as the programme lists it}
- Weakness: {the weakness you selected on the form}
- Severity: {None, Low, Medium, High or Critical}, vector `{CVSS vector in the version the programme uses}`
- Tested on: {URL or build}, {version, release or commit}, {date and time in UTC}

{One paragraph: what the vulnerability is and what an attacker gets from it.}

## Steps to Reproduce

Accounts: {attacker account and its role}, {victim account and its role}. Both are test accounts you own.

1. {Log in as the attacker account and open the URL.}
2. {Send this request, with the parameter and the value.}
3. {Observe the response or the state change, with the exact value.}

## Expected vs Actual Behavior

- Expected: {what the application should do, and the source of that rule}
- Actual: {what it does}

## Impact

{What the attacker reads, changes or takes over, for which users, and how many.}

- Preconditions: {none, or what the attacker needs first}
- User interaction: {none, or what the victim has to do}
- Mitigations already in place that do not stop it: {list}

## Supporting Material

```http
{The request}
```

```http
{The response, trimmed to the part that proves the point}
```

Attached: {file names of screenshots or the recording}

## Remediation

{The check that is missing and where it belongs.}

## Limits and non-claims

- Testing stopped at: {the point you stopped, for example after reading one record of your own second account}
- Not claimed: {what this report does not say, for example no access to other tenants}
- Depends on: {browser, configuration or feature flag the behaviour needs}

## Known issues checked

- Programme policy, exclusions and known issues: {date checked, the nearest item, why this differs}
- Disclosed reports on this programme: {the nearest report, why the root cause or the endpoint differs}
- Core ineligible findings: {the nearest category, and the demonstrated impact that takes this out of it}

What gets this closed on HackerOne

Each reason comes from a page HackerOne publishes. The programme or contest page adds its own rules on top, and those win.

  1. Impact not demonstrated

    Not Applicable is the closed state for a report with no valid reproducible issue or no demonstrated security implication. It costs 5 reputation. Spam costs 10.

    Source Report States, Reputation

  2. Core ineligible findings

    Closed as invalid unless the report shows clear security impact: self-XSS, tabnabbing, content spoofing, clickjacking on pages with no sensitive action, logout CSRF, permissive CORS, version disclosure, CSV injection, open redirects, TLS and cookie-flag findings, SPF, DKIM and DMARC settings, and most rate-limit issues. DoS and social engineering are never to be tested without authorisation.

    Source Core Ineligible Findings

  3. Duplicates

    Duplicate covers an issue already reported or otherwise known, and several reports that one fix resolves. A duplicate of a resolved report filed before it went public earns 2 reputation. A duplicate of a Not Applicable report, or of a report that was already public, costs 5.

    Source Report States, Reputation

  4. Known and accepted risks

    Informative is used for out-of-scope submissions, for issues listed on the programme’s security page, and for accepted risk. It leaves reputation unchanged.

    Source Report States

  5. One systemic issue filed as many reports

    The platform standard rewards the first three reports that establish a systemic issue, then a single discretionary bonus. Later instances that the same fix resolves are treated as duplicates or paid a reduced bonus. Put the variants in one report.

    Source Detailed Platform Standards

  6. A severity the vector does not support

    Severity is required at submission on programmes that have not opted out. The standards fix some metrics: Privileges Required is None when anyone can sign up, Attack Complexity is High for an IDOR with unpredictable IDs until the report shows how they are obtained, and deleting data counts against Integrity, not Availability.

    Source Submitting Reports, Severity, Detailed Platform Standards

  7. A report that cannot be edited

    Review the preview before you submit. The help centre is direct about it:

    You won’t be able to edit your details after submitting the report.

    Submitting Reports, HackerOne

    Source Submitting Reports

  8. Penalties

    No fee is published. The cost is reputation: a profile starts at 100, a low reputation limits how many reports you can file in a period, and programmes set Signal requirements measured over your last 365 days.

    Source Reputation, Signal & Impact

Challenge the filled draft

Paste the report once every placeholder is replaced. The workbench opens with Challenge a draft report selected and argues against each claim: the impact row, the proof, the severity, the known issues. You decide what to rewrite.

The draft stays in this browser. It is sent only when you run a review in the workbench.

Sources

Primary sources only, read on 2 Oct 2026. Rules change. Read the programme page on the day you submit.

  • The parts of a report and the pre-submission checks.

    Updated 5 Feb 2025 · checked 2 Oct 2026

  • The form fields, the severity requirement from 21 Sep 2026, attachments, no edits after submission.

    Updated Sep 2026 · checked 2 Oct 2026

  • What each closed state means.

    Updated 15 Jul 2024 · checked 2 Oct 2026

  • Points gained and lost per report state.

    Updated 1 Dec 2025 · checked 2 Oct 2026

  • How Signal is calculated and what it gates.

    Updated 17 Jul 2024 · checked 2 Oct 2026

  • Findings closed as invalid without demonstrated impact.

    Updated 19 May 2025 · checked 2 Oct 2026

  • Systemic issues, bug chains, CVSS clarifications, sensitive data.

    Updated 21 Jan 2026 · checked 2 Oct 2026

  • Severity ratings and the CVSS versions offered.

    Updated Sep 2026 · checked 2 Oct 2026

  • What happens after submission and how to request mediation.

    Updated 16 Jun 2026 · checked 2 Oct 2026