Toutes les vulnérabilités
CRITICALWeb3exploited in the wild

WEB3-UWULEND-2024

Web3 · Ethereum · UwU Lend

Résumé

On June 10, 2024, UwU Lend, an Aave-fork lending protocol on Ethereum, lost about $19.3 million, followed by a second ~$3.7 million drain on June 13, 2024 (combined ~$23 million). The root cause was flash-loan oracle manipulation of the sUSDe price feed: the custom sUSDePriceProviderBUniCatch oracle priced sUSDe as the median of 11 sources, 5 of which read instantaneous Curve pool spot prices via get_p (no TWAP/EMA smoothing) across the FRAXUSDe, USDeUSDC, USDeDAI, USDecrvUSD and GHOUSDe pools. Using a roughly $3.8 billion flash loan, the attacker swapped large USDe amounts to suppress the median sUSDe price, set up positions, then reversed the swaps to inflate it, rendering their own leveraged position liquidatable and self-liquidating repeatedly to harvest base assets at favorable rates. Curve explicitly advises against using get_p spot reads for oracles. The June 13 follow-up reused collateral left from the first attack, since sUSDe was not disabled as borrowable collateral.

Comment l’éviter dans votre code

  • Never derive collateral prices from instantaneous AMM spot reads like Curve get_p; use TWAP/EMA or signed feeds.
  • Aggregate oracle sources so no manipulable subset (e.g. 5 of 11) can move the median.
  • Cross-check on-chain prices against an independent feed (e.g. Chainlink) with deviation bounds.
  • On incident response, disable affected assets as borrowable collateral, not just new deposits.
  • Cap per-block price movement and reject valuations updated within a flash-loan transaction.

Références

Vulnérabilités liées

Tout Web3 →