Normal behavior should allow the user to pay using either ETH or WETH.
Likelihood:
Medium
buySnow() is publicly accessible.
No privileged role is required.
The issue occurs whenever msg.value is nonzero but does not exactly equal the required ETH payment.
The contract does not refund the excess ETH or reject the transaction.
Impact:
The buySnow() function accepts any msg.value that does not exactly equal the required fee and then proceeds with the WETH payment path.
Consequently, a user can send ETH together with a WETH payment, causing the contract to retain the unintended ETH while also transferring the required WETH from the user.
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.