Users can frontrun an emergencyWithdraw call to claim their accumulated RAAC token rewards before their funds are forcefully withdrawn. This allows them to extract rewards that should not be accessible in an emergency state, leading to unfair token distribution.
The emergencyWithdraw() function can only be called by an address with the EMERGENCY_ROLE.
However, since it does not immediately lock reward claims, a user can monitor for an incoming emergency withdrawal transaction and call claimRewards() before the contract state changes.
This results in them claiming rewards they otherwise would not be able to access post-withdrawal.
Malicious users can extract RAAC token rewards by frontrunning the emergency event.
Manual review
In emergencyWithdraw(), forcefully distribute pending rewards and reset balances before executing the withdrawal.
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.