Crypto exploits

SecuredFi exploit analysis

On 2026-09-05, an attacker on Ethereum drove Secured Finance's `getMarketUnitPrice` to par with same-block self-trades and borrowed against the inflated fake collateral, draining ~0.9 WBTC (~$72K) from the TokenVault in a single transaction.

Reported loss
~0.9 WBTC (~$72K single-drain; ~$104K across all actors exploiting the same public bug), per DeFiHackLabs
Occurred
Logged

Logged as “2026-09-05: Same Block Self Trade Manipulates Getmarketunitprice To Fabricate Collateral on SecuredFi”.

Analysis1 min read

Secured.Fi's lending-market controller valued collateral through getMarketUnitPrice, computed as blockTotalAmount * 10000 / blockTotalFutureValue over orders filled in the current block. There was no time-weighting and no manipulation resistance beyond a minimum-volume gate (isReliableBlock). The collateral path read the price with isReadOnly = true, which always took that same-block ratio. An attacker who controlled both sides of an order and matched them inside one block could fill enough self-matched volume to clear the gate and pin the ratio at par (10000), then use the resulting artificially-valued position as collateral to borrow against.

The attacker in the original attempt (0x5d4e4fa9...ce92777) reverted out of gas mid-exploit. The MEV searcher coffeebabe (0xc0ffeebabe...) then replayed the same strategy in a single transaction on block 25914192 (0xcd6159860783d8d481cc4bf4dceddc88acdca6bb08f6445525b2904cfd75b1da), draining ~0.9 WBTC (~$72K) from the TokenVault pool at 0xb74749b2213916b1da3b869e41c7c57f1db69393 through the LendingMarketController at 0x35e9D8e0223A75E51a67aa731127C91Ea0779Fe2.

The attack was funded by a Balancer V2 WBTC flash loan and executed from a plain externally-deployed contract making ordinary typed calls to executeOrder, cleanUpFunds, deposit, and withdraw. Both legs of the self-trade used real executeOrder fills with two attacker accounts forming genuine counterparties, then deposit and withdraw against the resulting fake collateral. The README's OrderBookLib source on Etherscan confirms the per-block summation and the isReadOnly = true flag on the collateral path.

The README totals ~$104K across the original attack, the coffeebabe replay, and several copycat drains; the WBTC-drain transaction above accounts for ~0.9 WBTC, or ~$72K, of that figure. Two later copycat bots drained smaller USDC amounts through the same bug and are not modelled here.

The fix is to source the unit price from a TWAP or another time-weighted oracle rather than from the same block's filled volume, and to require that price to be drawn from orders the caller did not control. Even a one-block TWAP over prior blocks would have prevented the flash-loan-funded self-trade from setting the price the same block the attacker then read it.

Sources read (3)

Other exploits

Query every incident yourself — free, no signup

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