On March 15, 2026, Venus Protocol on BNB Chain suffered a sophisticated price oracle manipulation attack targeting the THE token from the Thena DeFi project. The result: approximately $2.15 million in irrecoverable bad debt. The attacker walked away with roughly $5.07 million in borrowed assets—funded with 7,400 ETH sourced from Tornado Cash.
This wasn't a novel attack vector. It was a textbook oracle manipulation that Venus had already experienced in March 2025, losing $716K to an eerily similar exploit. The recurrence raises uncomfortable questions about protocol governance and risk parameter management.
The Setup: Low Liquidity Meets Lending Collateral
The attack became possible after Venus governance added THE as a collateral asset in its main lending pool. THE had notoriously thin on-chain liquidity—a red flag that should have triggered more conservative risk parameters.
Here's what the attacker exploited:
- Thin order books: THE's on-chain liquidity couldn't absorb large trades without massive price impact
- Oracle update lag: Venus's temporary oracle updated THE's price asynchronously, creating a window between spot and oracle prices
- Deposit limit bypass: A "donation attack" allowed circumventing Venus's collateral caps
Attack Mechanics: Step by Step
Phase 1: Initial Position
The attacker deposited THE as collateral and borrowed other assets (USDT, BNB, BTC, CAKE) against it. Standard lending protocol behavior—nothing suspicious yet.
Phase 2: Price Pump Cycle
With borrowed funds, the attacker purchased more THE on the open market. Given THE's thin liquidity, even modest buy pressure drove the price from $0.27 to nearly $5.00—an 18x increase.
Each purchase served dual purposes:
- Inflated the attacker's existing collateral value
- Created new collateral for additional borrowing
Phase 3: The Donation Attack (Deposit Cap Bypass)
Venus had deposit limits on THE to mitigate exactly this kind of attack. The attacker circumvented them by transferring THE tokens directly to the vTHE smart contract instead of going through the standard mint() function.
// Normal deposit path (subject to caps):
vTHE.mint(amount); // Checked against supply cap
// Donation attack (bypasses caps):
THE.transfer(address(vTHE), amount); // No cap check!
This "donation" artificially inflated the exchange rate between THE and vTHE, effectively increasing the collateral value without triggering deposit limit checks.
Phase 4: Oracle Catches Up (Partially)
When Venus's oracle updated, it registered THE at $0.50—still lagging behind the manipulated spot price but nearly 2x the original $0.27. This partial update was enough to legitimize a portion of the inflated collateral.
Phase 5: Collapse and Liquidation
The attacker attempted to continue the borrow-buy cycle but ran into selling pressure. THE's price began reverting, the health factor dropped to near 1.0, and Venus's liquidation engine kicked in.
The problem: THE's nominal collateral was valued at $30 million, but there was no market depth to realize that value. The token crashed through an empty order book to $0.24—below the pre-attack price.
The Damage Assessment
| Metric | Value |
|---|---|
| Bad debt created | ~$2.15M |
| Unpaid loans | 1.18M CAKE + 1.84M THE |
| Assets extracted | ~$5.07M (2,172 BNB + 1.516M CAKE + 20 BTC) |
| Initial capital | 7,400 ETH (from Tornado Cash) |
| Attacker's apparent P&L | Likely negative on-chain |
On-chain analyst EmberCN noted the attacker borrowed 9.92 million USDT to "create a commotion" but extracted only $5.07M in assets. The on-chain picture appears unprofitable, leading to speculation that the attacker hedged via perpetual futures shorts on centralized exchanges—profiting from THE's collapse while eating the on-chain loss.
Why This Keeps Happening: The Oracle Problem
This attack exploits a fundamental tension in DeFi lending:
Price oracles are inherently backward-looking. Whether using TWAP (Time-Weighted Average Price), Chainlink feeds, or custom oracles, there's always a lag between spot price movements and oracle updates. Attackers exploit this lag by:
- Moving spot price with real capital
- Borrowing against the stale (or partially updated) oracle price
- Letting the position collapse, leaving bad debt behind
Defense Patterns That Would Have Helped
1. Stricter Liquidity Requirements for Collateral Listing
Before adding any token as collateral, protocols should enforce minimum liquidity thresholds:
Minimum on-chain liquidity >= 10x maximum borrowable value
Price impact for max-borrow liquidation <= 5%
THE's liquidity profile should have disqualified it from the main pool entirely.
2. Exchange Rate Invariant Checks
The donation attack exploited the lack of exchange rate validation:
function accrueInterest() internal {
uint256 expectedRate = calculateExpectedRate();
uint256 actualRate = totalCash / totalSupply;
require(
actualRate <= expectedRate * 1.01e18 / 1e18,
"Abnormal exchange rate detected"
);
}
3. Borrow Rate Circuit Breakers
When a single asset's collateral utilization spikes abnormally, the protocol should:
- Pause new borrows against that asset
- Increase liquidation incentives
- Alert governance for manual review
4. Multi-Block TWAP Oracles
Single-block or short-window oracles are trivially manipulable. Extending the TWAP window to 30+ minutes significantly increases the capital cost of manipulation attacks.
5. Cross-Venue Price Validation
Comparing on-chain prices against multiple DEX venues and off-chain feeds can detect manipulation:
function validatePrice(address token) internal view returns (bool) {
uint256 dexPrice = getUniswapTWAP(token);
uint256 chainlinkPrice = getChainlinkPrice(token);
uint256 deviation = abs(dexPrice - chainlinkPrice) * 1e18 / chainlinkPrice;
return deviation < MAX_DEVIATION; // e.g., 5%
}
The Bigger Picture: Venus's Pattern
This is Venus Protocol's second oracle manipulation attack in 12 months. The March 2025 incident cost $716K through a similar mechanism. The recurrence suggests systemic governance failures:
- Insufficient post-mortem action: The 2025 fix didn't prevent the 2026 recurrence
- Aggressive collateral listing: Adding low-liquidity tokens to the main pool prioritizes TVL growth over security
- Inadequate oracle infrastructure: Temporary oracles with exploitable update windows remain in production
For DeFi protocols, the lesson is clear: oracle security isn't a one-time fix—it's an ongoing arms race.
Key Takeaways for Auditors and Developers
- Audit the collateral listing process, not just the smart contracts. The vulnerability was in governance decisions, not code bugs.
- Test donation attacks against any token-wrapping or vault mechanism. Direct transfers that inflate exchange rates are a common oversight.
- Model oracle manipulation cost for every collateral asset. If the manipulation cost is less than the potential profit, the asset is too risky.
- Implement real-time monitoring for anomalous collateral ratio changes. The 18x price spike should have triggered automated protective measures.
- Consider isolated lending pools for new or low-liquidity assets, limiting blast radius if manipulation occurs.
The DeFi lending space needs to evolve from reactive security (patching after exploits) to proactive risk management (preventing exploits through better collateral standards). Venus's repeated losses demonstrate that without this shift, the same attacks will keep draining value from protocols—and their users.
DreamWork Security publishes regular analysis of DeFi security incidents, audit methodologies, and defense patterns. Follow for weekly deep-dives into the vulnerabilities shaping Web3 security.
Top comments (0)