buySnow double-charges users who do not send the exact feebuySnow is payable and lets a buyer pay either in ETH or in WETH. It branches on a strict equality of msg.value to the fee; any non-exact ETH value falls into the else branch, which pulls the full fee in WETH while the contract silently keeps the sent ETH (only collectFee can later sweep it).
Likelihood:
Any overpayment by even 1 wei, or ETH accidentally co-sent with a WETH-intended call, triggers the else branch. Exact-wei payment is fragile and easy to get wrong.
Impact:
The user is charged twice: their sent ETH is stranded in the contract with no refund path, and the full WETH fee is also pulled. Funds are lost to the buyer until a privileged collectFee sweep.
Overpaying ETH by 1 wei still pulls the WETH fee and keeps the ETH.
Reject inexact ETH and require zero msg.value on the WETH path.
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.