User is able to create malicious ERC20 token with type(uint256).max token supply and deposit it.
User can do the following attack:
He creates an ERC20 token that can't be transferred out from the Treasury (by overriding transfer or update function). This token should have a total supply of type(uint256).max
Then he calls the Treasury::deposit function, transferring the whole total supply of this token to the Treasury
This way the _totalValue variable is inflated to type(uint256).max and blocks any other user to deposit funds to the treasury
Total DoS of the Treasury
Manual review
Make a token whitelist in the Treasury
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.