Five claims in the draft, checked against RewardPool.sol
- C1
-
claimForhas no access control.ConfirmedThere is no caller check at lines 71-79. Anyone calls it for any account.
input-2/RewardPool.sol:71-79
- C2
-
The attacker receives the victim’s rewards.
ContradictedLine 76 transfers to
user, the account that earned the reward. The caller receives nothing.input-2/RewardPool.sol:76
- C3
-
This drains the reward pool.
OverstatedEach call pays one account what it has already earned. The pool pays nothing it does not owe.
input-2/RewardPool.sol:73-76
- C4
-
It breaks the auto-compounder integration.
UnverifiableNo compounder code was supplied.
- C5
-
Severity: Critical.
OverstatedThe code supports a forced claim with no loss of principal. The assumption that would move it: a forced claim costs the user something the compounder would have earned.
- Next
Find the docs for
claimFor. If they describe a keeper path, drop the report. If they do not, file the rewritten version.