RAAC Protocol has a protocol treasury fund with role-based access control. This treasury can receive deposits from anyone and keeps track of the aggregate value of all tokens within it. A problem arises when the total deposit value reaches the cap of uint256.max
, causing an overflow revert. This results in a denial-of-service (DoS) attack on the entire contract. The main issue is coming from the fact that there is no token whitelisting and any token can be deposited, including custom-made tokens.
First malicious user should deploy this token:
This token will be minted and deposited with uint256
max amount to the treasury capping the totalValue
at max.
Now, the next deposit will revert and the contract will be DoS'ed due to overflow revert.
DoS of the treasury.
Manual review
Introduce a mapping for the total value of every token or add token whitelisting.
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.