The normal behavior is that recipients create signatures to claim their own Snowman NFTs, with the expectation that only they can initiate the claiming process using their signature.
The specific issue is that anyone can call the claimSnowman function for any recipient as long as they possess a valid signature, allowing attackers to forcibly claim NFTs on behalf of others without their consent.
Likelihood:
High - Signatures can be intercepted from mempool transactions where they are publicly visible before confirmation
High - Users might share signatures through insecure channels or signatures could be extracted from failed transactions
Medium - MEV bots and front-runners actively monitor mempool for profitable transactions containing signatures
Impact:
Griefing Attack - Attackers can force users to claim their NFTs at disadvantageous times, potentially affecting tax implications or personal timing preferences
MEV/Front-running - Malicious actors can extract value by controlling the timing of claims, potentially sandwiching user transactions or manipulating market conditions
Loss of User Control - Users lose autonomy over when they claim their NFTs, breaking the intended user experience and potentially causing confusion
Potential Financial Loss - In scenarios where timing matters (e.g., market conditions, gas prices, tax events), forced claiming could result in suboptimal outcomes for users
note: A full Foundry/Hardhat test is available upon request or in the appendix.
Require that only the intended receiver can call claimSnowman by adding a check:
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.
The contest is complete and the rewards are being distributed.