DEV Community

ohmygod
ohmygod

Posted on

Venus Protocol's THE Token Oracle Attack: Anatomy of a $2M Price Manipulation on BNB Chain

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:

  1. Thin order books: THE's on-chain liquidity couldn't absorb large trades without massive price impact
  2. Oracle update lag: Venus's temporary oracle updated THE's price asynchronously, creating a window between spot and oracle prices
  3. 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!
Enter fullscreen mode Exit fullscreen mode

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:

  1. Moving spot price with real capital
  2. Borrowing against the stale (or partially updated) oracle price
  3. 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%
Enter fullscreen mode Exit fullscreen mode

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"
    );
}
Enter fullscreen mode Exit fullscreen mode

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%
}
Enter fullscreen mode Exit fullscreen mode

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:

  1. Insufficient post-mortem action: The 2025 fix didn't prevent the 2026 recurrence
  2. Aggressive collateral listing: Adding low-liquidity tokens to the main pool prioritizes TVL growth over security
  3. 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

  1. Audit the collateral listing process, not just the smart contracts. The vulnerability was in governance decisions, not code bugs.
  2. Test donation attacks against any token-wrapping or vault mechanism. Direct transfers that inflate exchange rates are a common oversight.
  3. Model oracle manipulation cost for every collateral asset. If the manipulation cost is less than the potential profit, the asset is too risky.
  4. Implement real-time monitoring for anomalous collateral ratio changes. The 18x price spike should have triggered automated protective measures.
  5. 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)