The claimSnowman
function in the SnowmanAirdrop contract allows users to exchange their Snow tokens for Snowman NFTs through a verified claiming process.
The function accepts a receiver
parameter that can be any address, but it doesn't verify that the caller (msg.sender
) is the same as the receiver
. This allows anyone to initiate a claim on behalf of another user if that user has previously approved the contract to spend their tokens.
Likelihood:
This vulnerability can be exploited whenever a user has approved the SnowmanAirdrop contract to spend their Snow tokens, which is a common practice for interacting with token-based contracts.
Impact:
An attacker can force a user to claim Snowman NFTs and burn their Snow tokens without their consent.
This could lead to financial loss if the user was holding Snow tokens for other purposes or if the market value of Snow tokens is higher than the Snowman NFTs.
Users may lose trust in the protocol if their tokens can be spent without their explicit authorization for each transaction.
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.