In good-faith CORRUPTED: bountyEntitlement = snapshotTotalStaked + snapshotTotalBonus (entire pool).
claimAttackerBounty() pays min(remaining, freeBalance)
claimCorrupted() requires bountyClaimed >= bountyEntitlement (MustClaimBountyFirst)
sweepUnclaimedCorrupted() only available after corruptedClaimDeadline (180 days)
With fee-on-transfer: attacker claims → pool sends X, token takes fee → pool balance drops more than bountyClaimed increments. Pool depletes before bountyClaimed >= bountyEntitlement. claimCorrupted reverts MustClaimBountyFirst. Recovery must wait 180 days.
Likelihood:
Same token assumption as fee-on-transfer or rebasing tokens cause balance/accounting divergence
Good-faith CORRUPTED path is designed for attacker to claim entire pool, making the fee impact severe
Impact:
Attacker cannot claim full entitled bounty due to fee erosion
Recovery cannot call claimCorrupted() until bountyClaimed >= bountyEntitlement — reverts MustClaimBountyFirst
Funds stuck in pool for 180 days until sweepUnclaimedCorrupted() becomes available
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.