buyPresent can be used to troll people, burn their tokens and steal a present.
An attacker can call buyPresent with a target address and force it to burn tokens and a present gets assigned to the attacker.
People see their tokens effectively get stolen.
There will be no token market as they will all be burnable by trolls.
Many presents will be stolen by bad actors.
N/A
Remove the presentReciever parameter and just use msg.sender
AND
If the intent is to allow people to buy a present for others, implement the presentReceiver parameter in mintAndIncrement function instead.
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.