A person could collect the Santa NFT, transfer it to another address then collect it again.
The check balanceOf(msg.sender) > 0
is not enough to prevent a person to mint the NFT multiple times.
See this test that passes:
Impact is high because a nice person could collect the present and sell it to naughty persons, which is not nice at all.
Manual code review.
Keep track of the persons that have collected the present.
For example:
Relying on balanceOf > 0 in collectPresent() allows the msg.sender to send their present to another address and then collect again.
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.