Aztec Connect $2.1M Exploit: Technical Analysis
Published 6/15/2026, 3:16:55 PM
Overview
On June 14–15, 2026, an attacker drained approximately $2.1 million from Aztec Connect's deprecated RollupProcessorV3 contract on Ethereum (0xff1f2b4adb9df6fc8eafecdcbf96a2b351680455). The exploit occurred nearly 3 years after the protocol was officially deprecated (March 2023) and over 2 years after admin keys were renounced (March 2024).
Technical Mechanism
The root cause, identified by BlockSec's Phalcon team, was a mismatch between proof verification and settlement logic in the computeRootHashes() function:
| Component | Behavior |
|---|---|
| Proof Verification | ZK circuits verified a larger set of transactions than the settlement layer actually processed |
| Settlement Logic | On-chain settlement only processed a subset of those verified transactions |
numRealTxs Mismatch | Attacker set numRealTxs to a smaller value than the actual transaction list, placing real deposit transactions in slots outside the settlement window |
| Result | Balances credited by the rollup were not backed by actual deposited assets on Ethereum |
The attack exploited the public rollup processing function that remained callable on the immutable contracts. By structuring transactions so that legitimate deposits fell outside the settlement-processed portion, the attacker created unbacked balances across 7 different assets and withdrew them. CertiK noted that proof data was partially verified, but the parameters used to process token transfers were not fully checked, enabling unauthorized withdrawals.
Additionally, ZK circuit integer arithmetic (finite field operations) created exploitable edge cases around division remainders, where a malicious sequencer could manipulate user_output values through multiple valid decompositions of a single value.
Why the Deprecated Contract Was Vulnerable
| Factor | Details |
|---|---|
| Full Immutability | After deprecation, contracts became fully immutable—no upgrades, patches, or pause mechanisms |
| Admin Key Renunciation | Aztec Labs renounced all admin keys on March 31, 2024; holds zero control over the system |
| No Operator | No entity could pause, patch, or intervene once the system was abandoned |
| Persistent Callable Functions | Critical functions (public rollup processing) remained publicly callable |
| Residual Funds | ~$2.1M sat in the contract for years after deprecation, despite users being given over a year to withdraw |
| Unmonitored Code | Legacy code sat on Ethereum without active security monitoring |
Critical nuance: The vulnerability was not unknown. Independent researcher lucash-dev identified the same flaw and reported it through Aztec's bug bounty program. Aztec paid a $450,000 bounty (their largest ever) and urged users to withdraw from zk.money. However, the contract was not shut down—it remained live and funded—and the exploit occurred anyway nearly 2 years later.
Timeline
| Date | Event |
|---|---|
| 2022 | Aztec Connect launched as a privacy-focused zk-rollup bridge on Ethereum |
| March 31, 2023 | Protocol officially deprecated; deposits disabled |
| March 31, 2024 | Sequencer fully shut down; admin keys renounced; contracts become fully immutable |
| April 2024 | An update to the rollup processor contract was deployed but not externally audited |
| June 14–15, 2026 | Exploit executed—~$2.1M drained from RollupProcessorV3 |
Stolen Assets
| Asset | Amount |
|---|---|
| ETH | ~909 ETH |
| DAI | ~270,000 DAI |
| wstETH | ~167 wstETH |
| Other ERC-20s | Multiple smaller tokens |
| Total Value | ~$2.1M – $2.19M |
Attacker Address: 0x0F18D8b44a740272f0be4d08338d2b165b7EdD17
Funding Source: Tornado Cash (used to obscure wallet origins before the exploit)
Key Takeaways
-
Immutable ≠ Secure: Deprecating a contract without draining residual funds does not eliminate risk—unpatched vulnerabilities persist indefinitely in Ethereum's open execution environment.
-
Bug Bounty ≠ Exploit Prevention: The vulnerability was known and bounty-paid, yet the exploit still succeeded because the contract was not fully deactivated and residual funds remained.
-
No Recourse After Renunciation: The Aztec team's decision to renounce admin keys was philosophically sound for a privacy protocol, but it created an irreversible situation when a vulnerability was later exploited.
-
Current Aztec Network Unaffected: The exploit had zero impact on the current Aztec Network or AZTEC ERC20 token—the legacy
RollupProcessorV3was a separate, abandoned system.
Verification Status
The claims above are drawn from aggregated security analyses by BlockSec, CertiK, and Aztec Labs. However, no direct URLs were provided in the research output to independently verify specific transaction hashes, contract calls, or on-chain data. The timeline dates (especially the April 2024 contract update and March 2024 key renunciation) are noted as not independently confirmed. Readers seeking full verification should cross-reference BlockSec Phalcon alerts, CertiK's incident reports, and Aztec Labs' official blog for direct links to the exploited transactions and the bug bounty disclosure.
Follow-Up Actions
- Deep dive on-chain: Trace the attacker address (
0x0F18D8b44a740272f0be4d08338d2b165b7EdD17) to verify fund flows and identify any subsequent movement patterns. - Monitor recovery efforts: Check whether Aztec Labs or law enforcement has frozen any stolen funds through Tornado Cash or other mixers, and whether any assets have been returned.