First check for a person to add in second checkList by santa
can be bypassed because of default value of ENUM
For a person to be added in s_theListCheckedTwice
mapping, that person should be first in s_theListCheckedOnce
mapping, but if santa
passes an address that is not in s_theListCheckedOnce
with NICE
status in SantasList::checkTwice
then it will pass the check because s_theListCheckedOnce
mapping will give default value of ENUM which is 0(in our case) which is NICE
by default
//Here is the POC, we are calling directly checkTwice
without calling checkList
first
Wrong person can be set in s_theListCheckedTwice
and that person can mint token
Manual review
There are some ideas protocol can do
Make a false status at 0(default) position like
Adjust NAUGHTY OR NOT_CHECKED_TWICE above, even if someone passed the check they will not be able to collectPresent
because only NICE OR EXTRA_NICE people can collect
In Solidity the first element of an enum is the default value. In Santa's List, the means each person is mapped by default to 'NICE'.
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.