High Impact
Medium Likelihood
Snow.buySnow is a payable function that accepts either ETH or WETH as payment for Snow tokens.
When msg.value != s_buyFee * amount, the contract takes the WETH path — it calls safeTransferFrom to pull WETH from the caller and retains whatever ETH was accidentally sent. There is no refund and no revert. The stranded ETH can only be recovered by the collector via collectFee, so any user who sends even 1 wei alongside a WETH purchase suffers a permanent loss.
Likelihood:
Front-end bugs, price slippage, or user error can trivially result in a non-zero msg.value alongside a WETH transaction.
Smart-contract integrators that forward ETH trigger this silently.
Impact:
Users lose the excess ETH permanently — it is collected by the fee collector, not returned.
Users are double-charged (ETH trapped + WETH pulled).
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.