An attacker can exploit the protocol and change the status of the first check list for any user.
An attacker can call the checkList function by passing an address of any user and the status. The function sets the given status by the attacker for that user in the first check list. This is possible due to the missing modifier in the following lines of code
In this PoC, User can attack the protocol and change the status of anyone using the external function known as checkList(). This function is missing the onlySanta modifier.
Attacker: The attacker who will call the checkList function with the victim's address and pass in a status of their own choice.
Victim: The victim will have their status for the first checkList changed once the attack is completed, making it impossible for them to redeem their presents.
If the attacker calls this function, then they can block the collection of presents for any user by mismatching the statuses of the first and second check list. This causes severe disruption of the protocol making it impossible for the victim to collect their presents.
Manual Review, Foundry Tests
Apply the missing modifier => onlySanta on this function, Similar to the checkTwice function.
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.