There is no limit on the amount of reward tokens that can be claimed. The balance could be drained.
Reentrancy attack could occur in the claimable
function of the Staking.sol
. The function could be vulnerable to a reentrancy attack because it calls the updateFor
function, which updates the user's index and claimable rewards. If an attacker were to call the claimable
function while the updateFor
function was still executing, the attacker could potentially withdraw more rewards than they are entitled to.
The balance could be drained
Manual code review
A way to prevent a reentrancy attack is to use the lock
statement. The lock
statement prevents other functions from being called while the lock
statement is executing. This can be used to ensure that the updateFor
function has finished executing before the claimable
function withdraws rewards. For example, the following code would prevent a reentrancy attack using the lock
statement:
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.