Description: There's a critical typo in the MESSAGE_TYPEHASH constant definition that will cause all signature verifications to fail:
The type string contains "addres" instead of "address" for the receiver parameter. This mismatch means that the hash used for EIP-712 signing in the contract won't match what users are actually signing in their wallets. As a result, the signature verification in _isValidSignature will fail for all users attempting to claim their Snowman NFTs, making the entire airdrop system unusable.
Impact: EIP-712 signatures are extremely sensitive to the exact string used in the type hash. Even a single character difference will produce a completely different hash, causing signature verification to fail.
Proof of Concept: Include the following test in the TestSnowmanAirdrop.t.sol
file:
Create a script 'Offline.s.sol' file in the 'script' folder with the following code:
Recommended Mitigation: Fix the typo in the MESSAGE_TYPEHASH:
A typo in the `MESSAGE_TYPEHASH` variable of the `SnowmanAirdrop` contract will prevent signature verification claims. Used `addres` instead of `address`
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.