Merkle leaves are computed using the current balanceOf(receiver) which is mutable and can lead to verification failures.
The Merkle tree should be constructed off-chain from static data.
The current design allows balances to drift over time, breaking Merkle proof verification.
If a user sends or receives tokens before claiming, their Merkle proof becomes permanently invalid.
Frozen funds.
Merkle proof becomes useless if balances change.
HIGH
HIGH
Build Merkle leaves off-chain using precomputed snapshot balances.
Include static amount in Merkle proof payload.
Modify function to accept uint256 amount as input parameter.
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.