Conflict with description, user does not need to approve SantaToken before burning SantaToken in buyPresent function.
allowance is not checked in SantaToken burn method. So user does not need to give allowance before buyPresent.
_burn is called directly, modifying token balance, and supply.
Attacker can call buyPresent with other user's address, to maliciously burn SantaToken of other users, and mints NFT for the attacker himself.
Fondry
use transferFrom instead, which checks allowance.
Current implementation allows a malicious actor to burn someone else's tokens as the burn function doesn't actually check for approvals.
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.