SantasList::checkTwice & SantasList::collectPresent can be made to always revert for users that have been SantasList::checkTwice with a status of NICE or EXTRA_NICE.
SantasList::checkList is callable by anyone with any status as input ( in this case NAUGHTY). Both SantasList::checkTwice and SantasList::collectPresent expect that the status of the user in both SantasList::s_theListCheckedOnce and SantasList::s_theListCheckedTwice are the same. A malicious user can just decide to call SantasList::checkList for any user (he wishes to DOS) with the status of NAUGHTY. This effectively blocks this user from ever being checkTwice-ed or to ever be able to collectPresent.
In the terminal, run the following commands.
forge test --mt testDOSCollectPresent
forge test --mt testDOSCheckTwice
SantasList::checkTwice & SantasList::collectPresent can be made to always revert for users that have been SantasList::checkTwice with a status of NICE or EXTRA_NICE.
Manual review
Add an only santa modifier to SantaList::checkList method, line 121
Anyone is able to call checkList() changing the status of a provided address. This is not intended functionality and is meant to be callable by only Santa.
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.