There is no OnlySanta modifier in the checkList function which results in Denial of Service(DOS).
The below provided function does not have the above OnlySanta modifier. Without OnlySanta modifier, anyone can call the below function. OnlySanta modifier only allows i_santa address to call the function.
Due to the missing OnlySanta modifier, anyone can enter the checkList function and change the s_theListCheckedOnce variable. This results in various unintentional outcomes -
Any malicious user, e.g. attacker, can call the function and change the variable to NICE or EXTRA_NICE.
attacker can change the value of any user's variable to anything it desires.
attacker can always revert the changes made by santa.
Hence, making the contract unusable for any user or santa.
Manual Review
To mitigate the vulnerability, OnlySanta modifier should be added to the checkList function which will only allow the santa to call the function.
Here's how you can modify the 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.