// @audit sweepUnclaimedBonus is the ONLY value-mover that deliberately skips claimsStarted latch
// @audit When riskWindowStart == 0, it sweeps the entire bonus pool with no latch set
// @audit flagOutcome re-reads totalBonus live on re-flag — computes bounty from drained total
sweepUnclaimedBonus (line 474) deliberately does NOT set claimsStarted. The in-code comment justifies this for 1-wei dust donations. But when riskWindowStart == 0, the same code path sweeps the entire bonus pool to recoveryAddress.
Because flagOutcome re-reads totalBonus live on every re-flag (line 358), a SURVIVED to good-faith CORRUPTED correction after the sweep computes bountyEntitlement from the drained total. The whitehat, entitled to the entire pool under §12, is permanently shortchanged by the bonus amount, now in the sponsor-controlled recoveryAddress. The sponsor is directly incentivized: recoveryAddress receives the swept bonus.
The PoC below demonstrates the full sequence: SURVIVED flag on a CORRUPTED registry, sweepUnclaimedBonus drains the bonus (claimsStarted stays false), moderator corrects to good-faith CORRUPTED, whitehat claims and receives only principal — 50 short of the 150 owed.
The sponsor is directly incentivized: recoveryAddress receives the swept bonus. The sequence is a documented workflow: §4 contemplates re-flag corrections, §8 allows SURVIVED on a CORRUPTED registry. A moderator correcting SURVIVED to CORRUPTED on new evidence is the exact use case §4 protects.
Whitehat loses the entire bonus portion of their bounty. §12 entitles them to snapshotTotalStaked + snapshotTotalBonus; after sweep + re-flag, they receive only principal. Contradicts §10 and §12.
Set claimsStarted when the swept amount is material (>0.1% of bonus pool), preserving the dust exemption while protecting the re-flag window.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.
The contest is complete and the rewards are being distributed.