Since the price of USDC is not directly pegged to the price of wETH, wBTC, or wSOL, and there is no validation on the _priceInUSDC
and _amountToSell
parameters for minimum values, sellers can use an extremely low USDC price to sell wBTC, wETH, wSOL far beyond their actual value. This can facilitate monetary transactions (money laundering).
Likelihood:
Reason 1:Malicious sellers and buyers engage in financial transactions and profit transfers (e.g., money laundering).
Impact:
Impact 1:Malicious sellers intentionally sell expensive WBTC to malicious buyers at an extremely low USDC price, completing profit transfers (e.g., money laundering).
For example:
Assume that 1 wBTC = 110,000 USDC
Due to the fact that in the createSellOrder
function, the price of USDC is not directly pegged to the price of wETH, wBTC, wSOL, etc., a malicious seller can set _priceInUSDC = 1e6 USDC
and _amountToSell = 1
A malicious buyer can then use an extremely unreasonable price of 1 USDC to obtain 20 wBTC = 2,200,000 USDC
. In other words: 1e6 USDC = 20e8 wBTC
Impact: Malicious sellers and buyers can complete money laundering transactions!
Use an AMM to peg the price of USDC to the prices of wETH, wBTC, wSOL, etc.
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.