The SnowmanAirdrop contract uses current token balances (i_snow.balanceOf(receiver)) to verify airdrop eligibility, which violates the intended staking period requirement.
This allows users to claim NFTs before the staking period ends and makes the airdrop vulnerable to balance manipulation through token transfers.
Likelihood:
Medium as user could have new deposit after the cutoff date.
Impact:
High as it may cause user not able to claim the airdrop successfully because of any new deposit.
User A stakes Snow tokens
Before staking period ends, User A transfers tokens to User B
User B can now claim the NFT even though they didn't stake
User A can also claim the NFT if they receive tokens back
This allows multiple claims and violates the staking requirement
Add staking period end time and snapshot balances:
Claims use snow balance of receiver to compute the merkle leaf, making proofs invalid if the user’s balance changes (e.g., via transfers). Attackers can manipulate balances or frontrun claims to match eligible amounts, disrupting the airdrop.
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.