The breach was facilitated by changes made to UwU Lend’s contract, which is a fork of AAVE V2, particularly in the oracle fallback logic. This allowed the attacker to borrow assets at one rate and liquidate them at an artificially inflated rate.
According to a root cause analysis by Nick Franklin, the exploit capitalized on a price discrepancy in UwU Lend’s oracles. The attacker used a flash loan to manipulate the price of sUSDe tokens, exploiting the protocol’s fallback oracle, which calculated prices based on the state of several Curve pools.
Attacker:
Exploit Transactions:
- 0x242a0fb4fde9de0dc2fd42e8db743cbc197ffa2bf6a036ba0bba303df296408b
- 0xb3f067618ce54bc26a960b660cfc28f9ea0315e2e9a1a855ede1508eb4017376
- 0xca1bbf3b320662c89232006f1ec6624b56242850f07e0f1dadbe4f69ba0d6ac3
Stolen funds:
How the Exploit Worked
The attacker executed the following steps:
- Flash Loan Utilization: The attacker initiated a flash loan to borrow a large amount of tokens.
- Pool State Manipulation: Using the borrowed tokens, the attacker made significant trades within the Curve pools. This activity manipulated the pool states.
- Price Feed Manipulation: The manipulated pool states influenced the fallback oracle’s price feed, causing it to report incorrect prices.
- Borrowing and Liquidation: With the manipulated prices, the attacker borrowed sUSDe at a rate of $0.99. They then liquidated positions at an inflated rate of $1.03, profiting from the price discrepancy.