Notional Finance Hack
What happened
On September 4, 2026 (UTC), an attacker drained the legacy Notional V1 Escrow contract on Ethereum of 1,658,524.86 USDC and 69,257.37 DAI, about $1.73 million. Notional V1 had been deprecated since January 2022 but still let users withdraw, so residual deposits sat in the escrow. Notional attributes the exploit to an integer overflow involving mintfCashPair. Analysts traced it to an unchecked uint128 downcast in free-collateral valuation that made a debt of exactly 2^128 read as zero.
The attacker swapped the stablecoins into about 689.2 ETH and deposited it into Tornado Cash in 100, 10 and 1 ETH batches. Notional paused and upgraded the V1 contract, engaged US law enforcement and incident response firm Zero Shadow, and said on September 8 that no funds had been recovered.
Setup transaction: 0xe1589a19fe742f0d553889214abade69551fe944acffac014c28cc07b325d60a
Drain transaction: 0xc3f3e318f7ab2d0daaba59e6ec901d25d1fe8a89aafe2b2b62e3b9aee1a24efa
Attacker: 0xDaCC235a494750193695A111D715c2ca12b5Ce38
How it happened
- In the setup transaction the attacker's contract called
Portfolios.mintfCashPair()twice. The OTC-style function mints an offsetting fCash pair on the spot, one asset side and one liability side. - The first call created a small liability; the second created one near the 128-bit edge, so the account's combined liability summed to exactly -2^128.
- During the free-collateral check,
ExchangeRate._convertToETHtook the absolute value of that liability and cast it touint128with no bounds check. Under Solidity 0.6 unchecked arithmetic, 2^128 truncated to 0, so the insolvent account passed the check as debt-free. - Per Notional, the unbacked positive fCash side was moved to a second attacker account, which used it as collateral to borrow.
- The drain transaction withdrew the escrow's live DAI and USDC balances, which were then swapped to ETH and mixed.
Protocol details
Evidence
Proof of concept
1 availableSources
- report @CertiKAlert incident report x.com
- report @PeckShieldAlert incident report x.com
- report @coinminutes_en incident report x.com
- report Notional V1 Exploit Post-Mortem blog.notional.finance
- report Notional Finance Escrow Contract Faces Reported $1.7M Exploit cryptotimes.io
- transaction Etherscan: drain transaction 0xc3f3...24efa etherscan.io
- transaction Etherscan: setup transaction 0xe158...d60a etherscan.io
- analysis DeFiLlama defillama.com
- analysis Notional Finance Suffers $1.7M Drain After Critical Integer Overflow Exploit crypto-economy.com
- analysis $1.73M Notional Finance Hack: Integer Bug Exposed [2026] shattered.io
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.