When the s_theListCheckedOnce and s_theListCheckedTwice are not initialized, the default value of the enum will be NICE. It will bypass the validation rules in collectPresent and earn the NFT.
Since the default value of enum type will be its first value in the enum structure. In this case, all the default mapping value will be NICE. User bypasses the validation rules in collectPresent since s_theListCheckedOnce[msg.sender] == Status.NICE and s_theListCheckedTwice[msg.sender] == Status.NICE. Users are able to mint and receive the NFT even though they should be marked naughty later.
Unintended amount of NFTs will be allocated.
Manual Review
Add a new type in the first element in Status, such as UNINITIALIZED.
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.