Description: The payment check in buySnow uses == for msg.value. If a user sends any ETH that does not exactly match s_buyFee * amount, the function falls through to the else branch, pulls WETH from the user, and the sent ETH remains in the contract (collectible only by the collector).
Impact: A user who sends a slightly incorrect ETH amount (e.g. off by 1 wei) loses their ETH to the collector AND also has WETH deducted — effectively double-paying.
Recommended Mitigation: Check whether any ETH was sent first, then enforce the exact amount.
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.