Bug Bounty Report Guide
The report template below covers vulnerabilities in EVM-compatible Cosmos TAC chain node: precompiles, EVM↔Cosmos state synchronisation, bank/staking/distribution module bugs. Tools: Hardhat (EVM side), Cosmos REST API, Go node source.Report Template
Report Template Commentary
1. Title and Metadata
- One line: network + vulnerability class + affected component.
Statusmust state the confirmation level:THEORETICAL/LOCAL REPRODUCED/TESTNET CONFIRMED/MAINNET CONFIRMED.
Balance Desync, State Collision, Precompile Missing Invariant,
Bank Module Bypass, IBC Replay, Consensus Equivocation.
2. Executive Summary
Triage reads this in 30 seconds. Must answer four questions:- What is broken? — one sentence on the root cause.
- What does the attacker gain? — tokens / control / data.
- How much? — specific numbers.
- Is it repeatable? — yes/no.
3. Vulnerability Details
3.1 Affected Component
State the exact location in the node source:3.2 Root Cause
One or two sentences — at the line-of-code level, not “somewhere in the module”:<FunctionName>has zero calls to<MissingFunction>(). Every adjacent precompile that performs the same operation includes this call —<FunctionName>was missed.
3.3 How It Works
- Context: how the EVM↔Cosmos state bridge normally works.
- What the vulnerable code does: step by step.
- Where the logic breaks: the specific missing call / condition.
- Observable effect: what state inconsistency is produced.
3.4 Technical Prerequisite
Any conditions required for exploitation (directly affects severity):3.5 Comparison with Correct Code
If an adjacent function is implemented correctly — always show the diff. This is the strongest evidence that it’s a missed piece, not an architectural flaw:4. Exploitation Steps
One transaction = one step. Include specific arguments and before/after state.5. PoC Results
The most valuable part for triage: real on-chain data. Required:- Deployment address of the PoC contract.
- TX hashes for every step.
- Block numbers.
- Money-flow table.
- Final profit calculation.
5.1 Scaling Economics
6. Impact Assessment
7. Recommended Fix
Immediate
Minimal change — a specific diff or pseudo-diff in Go:Long-term
Architectural fix so the class cannot recur:Adjacent Audit
8. Proof-of-Concept Code
Attach the fully working PoC. Requirements:- Minimal — no extra helpers or logging.
- Self-contained — compiles without external dependencies beyond hardhat / forge / cosmjs.
- Commented — explain non-obvious preconditions (e.g. why a storage write before the precompile call is necessary to trigger the bug).