Crypto exploits

dTRINITY dLEND exploit analysis

About 257,328 dUSD left dTRINITY's dLEND lending pool on Ethereum on 17 March 2026 after an empty cbBTC reserve's liquidity index was pushed to about 6.23e33, 6.2 million times its starting value, so rounding let the attacker withdraw its collateral from under the loan. Verichains puts the loss at about $257.3K.

David

Security ·

Reported loss
$257K
Occurred
Logged

Logged as “2026-03-17: Empty Market Liquidityindex Inflation on dTRINITY dLEND”.

Analysis2 min read

An empty market

dLEND is a fork of Aave V3. Its cbBTC reserve was effectively empty, which let one depositor set the supply that every flash loan premium is divided by.

The mechanism sits in the flash loan repayment path. FlashLoanLogic._handleFlashLoanRepayment books the premium into the reserve index through ReserveLogic.cumulateToLiquidityIndex, and that function divides the premium by the aToken's totalSupply. The smaller the supply, the larger the index movement for any premium. The code is inherited from Aave before V3.1, so the ReserveData struct carries no virtualUnderlyingBalance to absorb the effect.

Verichains describes it as an empty market weakness common in Aave V3 forks, where reserves with extremely low liquidity behave unpredictably. The DeFiHackLabs entry and its proof of concept reproduce both transactions on a fork.

The two transactions

The first, on 17 March 2026, inflated the index.

  1. Flash-borrow 11,366 cbBTC from Morpho Blue and deposit 100 units of it into the dLEND cbBTC pool, minting 100 scaled shares.
  2. Withdraw 99 of them. That leaves the whole reserve with a single scaled share, so there was no other supply in it to begin with.
  3. Transfer 0.8 cbBTC straight to the dLEND cbBTC aToken at 0x504D0Eacbf9ea5645A8A9da1b15f3708A5483AcC. A raw transfer mints no shares, so totalSupply stays at about 1.
  4. Run 150 flash loans against the reserve, each premium compounding the index, until getReserveNormalizedIncome for cbBTC climbs from 1e27 to 6226621999999999999999999979728276, about 6.23e33.
  5. Deposit and withdraw repeatedly to pull the donation and the premiums back out, then repay Morpho.

That first transaction leaves the index at about 6.2 million times its starting value, with one scaled share now worth about 0.0623 cbBTC.

The second transaction, 24 seconds later, used that state. A deposit of 7.72101004 cbBTC was credited at face value, 124 scaled shares, and at the oracle price of $73,724.74 and a 73 percent loan-to-value limit it supported the 257,328 dUSD borrow with room to spare. The collateral was never overstated. The theft came after the borrow. In 126 withdraw-and-deposit pairs, each withdrawal of 0.0934 cbBTC burned one scaled share, because 1.5 shares rounded down to one, and each deposit of 0.0318 cbBTC minted one, because 0.51 rounded up. Every pair took about 0.0616 cbBTC out of the pool without changing the position's share count, so the collateral stayed on the books while the cbBTC behind it left. A final withdrawal finished the job, the attacker repaid Morpho, and the dUSD went to its own address.

The figures

Verichains puts the loss at about $257.3K, and DeFiHackLabs records about 257K USD. On-chain, 257,328.63 dUSD moved from the dLEND dUSD reserve to the attack contract 0xba5e1e36b0305772d35509c694782fb9118d4ecc and on to the attacker 0x08cfdff8ded5f1326628077f38d4f90df6417fd9, which swapped 227,328 of it for 226,483 USDC within ten minutes. dUSD held its peg, so the USD figure is close to what was realised.

dTRINITY paused the protocol on Ethereum while it investigated, per cryip.

Where this sits in the corpus

The closest mechanism in the corpus is Set Protocol's RebalancingSetTokenV3, where actualizeFee() recomputed unitShares with divCeil and widened the gap between issue and redeem by one unit. Here the unit was one scaled share, worth 0.0623 cbBTC once the index had been inflated, and the attacker collected the gap 126 times.

Sources read (9)

Other exploits

Query every incident yourself — free, no signup

Updated 11 Nov 2026. Figures are as reported by the sources listed above and are not independently verified.