Attacker (anyone) can burn the SantaTokens
of a user without their allowance using buyPresent()
function. A user can burn someone's SantaToken without their approval.
Attacker can call the buyPresent()
function with any user address as parameter. Which results in burn of SantaToken of the user. This vulnerability arises because the burn()
function in SantaToken.sol
not burning the allowances of the the from
address. The burn()
function directly uses the SantaToken of from
address not the allowances.
The SantaTokens of the any user can be burned by an Attacker (anyone)
No need of approval from the user to the SantasList contract to burn the tokens of that user
Proof Of Code :
Here the Attacker can burn the buyToken()
function with a user address to burn their SantaTokens without their aproval.
Manual Review
Check that santaList was allowed to spend SantaTokens
of from
user. Burn the allowance tokens of the from
only.
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.