
Notional Finance appears to have suffered a $1.73 million exploit involving a legacy V1 Escrow contract, after an attacker abused an integer conversion flaw to bypass collateral checks and withdraw stablecoins held by the protocol.
On-chain investigators and security firms reported that the attacker extracted about 69,257.37 DAI and 1,658,524.86 USDC from the Escrow contract. The assets were later converted into roughly 689 ETH and moved through Tornado Cash.
The affected contract is the Notional Finance Escrow contract on Ethereum, identified by the address 0x9abd0b8868546105F6F48298eaDC1D9c82f7f683. Its implementation is listed as 0x8a134e651432A902041643668940C9a9cD270633.
According to QuillAudits’ technical analysis, the attack did not depend on a flash loan, price manipulation or a compromised private key.
Instead, the attacker exploited a flaw in the way Notional’s V1 contracts handled large signed integer values during collateral calculations.
The vulnerable path involved the mintfCashPair() function and the collateral calculation used to determine whether an account had enough free collateral.
The attacker created liabilities designed to reach exactly 2128. This was done using a liability of 1 together with another liability of 2128 - 1.
The combined value was therefore 2128, or 340,282,366,920,938,463,463,374,607,431,768,211,456.
The critical issue was an unchecked conversion from a larger integer type to uint128. In the affected calculation, the enormous value could be truncated when converted to 128 bits.
As a result, 2128 became zero after the narrowing conversion.
That caused the attacker’s enormous liability to appear as zero in the relevant ETH-denominated collateral calculation, allowing the free-collateral check to pass.
The exploit also took advantage of how mintfCashPair() handled paired payer and receiver positions. The payer’s collateral was checked, while the receiver side was not subjected to the same validation described in the technical analysis.
This allowed the attacker to create receiver claims corresponding to assets held by the Escrow while avoiding the intended solvency restrictions.
QuillAudits’ reconstruction identified values corresponding to approximately 69,257.37 DAI and 1.66 million USDC. The attacker subsequently called settleMaturedAssets(), turning the fabricated claims into recognized cash balances.
The attacker then used Escrow.withdraw() to remove the underlying assets.
The core transactions happened within minutes. Crypto Times reported that the setup transaction was confirmed at about 11:58:47 p.m. UTC on September 3, 2026, while the drain transaction was confirmed at about 12:01:35 a.m. UTC on September 4.
The drain was recorded in Ethereum block 25,900,234, according to the report.
The setup transaction was 0xe1589a19fe742f0d553889214abade69551fe944acffac014c28cc07b325d60a, while the reported drain transaction was 0xc3f3e318f7ab2d0daaba59e6ec901d25d1fe8a89aafe2b2b62e3b9aee1a24efa.
After withdrawing the stablecoins, the attacker consolidated the funds and swapped them into approximately 689 ETH before sending the ETH to Tornado Cash, according to on-chain analysis reported by Specter and other security researchers.
The investigation identified several addresses associated with the activity, including 0xDaCC235a494750193695A111D715c2ca12b5Ce38, 0x8aaf01B6F9AcC973274B8718BE4D1C1be10E3be6 and 0xC95496c917A41a394EfdAC3e0882F5903D24De69.
Several contracts were also identified in the transaction flow, including 0xec434a2f9b7b93aad1bed77d6bc512a75ae90d78, 0x5872B67d58CeF954B52dEb8E97f9F614BB12fa3d, 0x84A060Ed81316E6741Af216A099cFea8bCDd3489, 0x265ccfF3673bCAb03867988081cd51bFd919C03C and 0x4a3508C5aC0677325932f3bC786Ae7A1C3e9CAfF.
A notable part of the incident is its connection to a much older security review.
In its December 2020 audit of Notional V1, OpenZeppelin identified a finding concerning type casting without overflow checks.
The audit specifically pointed to the _convertToETH function in ExchangeRate.sol, where an int256 balance was cast to uint128. OpenZeppelin recommended using its SafeCast library to prevent truncation and unexpected values.
The connection is significant because the 2026 exploit analysis also identifies an unsafe narrowing conversion involving uint128 in the collateral valuation path.
However, the available evidence does not establish that the exact finding from the 2020 audit remained unchanged in the deployed contract until the September 2026 incident. The historical audit and the current exploit analysis should therefore be treated as a documented technical connection rather than proof that an unresolved audit finding directly caused the attack.
Notional’s own security audit history lists the OpenZeppelin V1 audit from December 2020, followed by additional security reviews covering later versions of the protocol.
Notional’s Escrow documentation describes the contract’s role in account balances, deposits, withdrawals, cash balances, collateral and settlement. It also documents the use of free collateral in withdrawal checks.
The incident is separate from the protocol’s previous V3 security problems. In 2025, Notional responded to the Balancer exploit and later announced the wind-down of Notional V3. The current incident, according to the available technical reporting, concerns legacy V1 Escrow infrastructure.
At the time of the available reports, Notional had not publicly confirmed the incident, released an official post-mortem or published an official loss figure. The $1.7 million estimate therefore comes from on-chain analysis and security researchers rather than a confirmed statement from Notional.
Discover more from Aree Blog
Subscribe now to keep reading and get access to the full archive.


