Normal Behavior: The claimSnowman function should verify eligibility using a Merkle tree with fixed Snow token amounts, ensuring only eligible users claim NFTs.
Specific Issue: The function uses i_snow.balanceOf(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.
Likelihood:
Occurs whenever a user transfers Snow tokens, altering their balance post-Merkle tree generation.
Mempool front-running allows attackers to adjust balances before claims are processed.
Impact:
Eligible users fail to claim NFTs due to invalid proofs, disrupting the airdrop.
Attackers can manipulate balances to claim unauthorized NFTs, potentially draining allocations.Proof of Concept
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.