Deep Analysis: The $6M Vault Nobody Owns — the Base wstETH Whitelist Takeover, a Full-Chain Review
This is a full-chain review of the October 4, 2026 takeover of an investment vault on Base — roughly $6M in wstETH drained through a borrowing allowlist that the vault's own multisig opened, with about $31.7M still inside and no team ever claiming ownership. It is reconstructed from the real-time alerts of Blockaid, PeckShield, CertiK, GoPlus Security and ExVul, and the on-chain Safe-record reconstructions published by the incident registries and security press. The eight steps follow this desk's standard framework. One caveat frames all of them: the victim has no name, so part of this review is about what that absence itself establishes.
No. The attacker borrowed 1,783.067 aBaswstETH — Aave V3's receipt token for wstETH supplied on Base — against the vault's position and redeemed it for roughly 1,783 wstETH (~$6M), using nothing but a borrowing allowlist entry that the vault's own 3-of-7 Safe had signed into existence. Both whitelist transactions carried cryptographically valid signatures from existing signers; Aave V3's Base market and Base itself functioned as designed throughout. The exploitable property was the permission layer above the code: who holds the seven signer keys, and who watches them — questions no code audit answers, and questions this vault's operators, whoever they are, have never answered in public.
- Loss~$6M1,783 wstETH (~$3,386 each) redeemed from Aave V3
- Attack cost2 signaturesRemove + re-add of the allowlist entry, one minute apart
- Time to drain~40 minutesFrom $2.02M flagged at 09:20 UTC to ~$6M roughly 40 minutes later
- Still at risk~$31.7MRemaining in the unclaimed vault
1. What Happened
On the morning of Sunday, October 4, 2026, a vault contract on Base began losing its Aave V3 position. Blockaid flagged an ongoing exploit at 09:20 UTC with an initial estimate of $2.02M; roughly forty minutes later the running total had grown to about $6M as the outflow continued. The mechanism, reconstructed from on-chain records: the attacker borrowed 1,783.067 aBaswstETH — the receipt token representing wstETH supplied to Aave's Base market — against the vault's position, then redeemed the receipt tokens for approximately 1,783 wstETH, worth about $6M at the ~$3,386 wstETH print (ether near $2,720 that weekend; counts range $6.0–6.1M depending on the price moment). Roughly $31.7M in assets remained in the vault after the withdrawal. Five security firms watched the sequence in real time — Blockaid, PeckShield, CertiK, GoPlus Security and ExVul — which is why a Sunday-morning theft of an unnamed contract is documented minute by minute. The vault itself has never issued a statement.
2. The Architecture
Three structural facts define the target. First, the vault is an OpenZeppelin transparent proxy with a separate upgrade authority — a standard pattern that adds one more contract layer between the assets and whoever ultimately controls them. Second, its exposure is a leveraged Aave V3 position on Base: deposits parked as aBaswstETH, earning yield, with borrowing against the position restricted to an allowlist of approved contracts — a common treasury design that exists precisely so that arbitrary contracts cannot touch the position. Third, the vault's operating owner is a 3-of-7 Safe created through Safe Proxy Factory 1.4.1, whose seven signer addresses have never been publicly identified. Every piece of this architecture is conventional. That is the point: the setup that failed is the setup thousands of treasuries run this morning.
3. The Flaw: A Permission List Without a Named Owner
The exploitable property was not in the vault's math, Aave's risk engine, or Base's sequencer — all of it worked as written. It was in the answer to one question: who can change who can borrow? The allowlist — the control that was supposed to make the vault safe — is editable by the Safe, and the Safe's security is exactly the integrity of seven anonymous key-holders. On October 4 that control produced its own exploit: a freshly deployed attacker contract was admitted to the allowlist through a transaction signed with valid signer keys. Investigators consider two explanations, both phrased as possibilities rather than findings: the signers' keys were compromised, or the approval path itself was manipulated so signers confirmed something other than what they believed. Which of the two applies is unknowable from the chain — valid signatures are valid — and it is unknowable for an additional structural reason: no operator exists to ask. A multisig is a count of signatures, not a count of honest signers; seven anonymous keys with no published process, no timelock and no operational history are a control in name only.
4. The Attack, Step by Step
The on-chain sequence is short and, in one respect, damning. Before October 4, the vault's Safe had executed no transaction for 25 days — a seven-signer control holding tens of millions that had gone silent for most of a month. At 08:52 UTC on October 4, the Safe executed a transaction removing a contract belonging to the attacker from the borrowing allowlist. One minute later, at 08:53 UTC, the same Safe re-admitted the same contract. Both transactions carried cryptographically valid signatures; on-chain, no rule was broken and nothing could have been rejected. A remove-then-re-add of the same address inside sixty seconds does not read as an operating error — it reads as someone deliberately sequencing approvals, and the analyzing firms note it is equally consistent with manipulated signers confirming transactions they did not understand. With the attacker's contract whitelisted, the borrow-and-redeem followed: 1,783.067 aBaswstETH out of the vault, redeemed at Aave V3 for ~1,783 wstETH, moved to attacker-controlled addresses. The outflow ran long enough that real-time monitoring watched the estimate grow from $2.02M to ~$6M over roughly forty minutes.
5. The Unowned-Vault Problem
The strangest fact in this incident is organizational, not technical: nobody has claimed the vault. No project team has acknowledged it, no remediation plan exists, no statement explains the unauthorized allowlist change, and the seven signers remain anonymous. An unidentified on-chain user later sent the attacker a message encouraging them to withdraw the remaining ~$31.7M and requesting a tip — a piece of street theater that underlines the vacuum — with no verified response. The absence is load-bearing in both directions. It means there is no counterparty to negotiate a return, no team to pause anything, no incident-response process to fund, and no one to answer the one question that would make the sequence legible: were your signers phished, or are your signers the attacker? It also means the remaining $31.7M is protected by nothing but the attacker's patience — the same allowlist mechanism that released $6M can release the rest, and the only watcher is the monitoring industry.
6. Containment and Recovery
There was none, and the reason is instructive. Aave V3's Base deployment was never at risk, so there was no protocol-level emergency brake to pull; Base functioned throughout; and the vault — the only contract that could have restricted the borrowing — is governed by the same anonymous Safe that authorized the loss. Compare the containment options this column has recorded in comparable incidents: Cosmos Hub validators halted a healthy chain and swept $2.2M by consensus; issuers froze $318K of the Bitget haul at the token layer; NEAR Intents patched its own contract within an hour and recovered everything within 36. Here, every one of those levers requires an identified, reachable owner — and that is exactly what the vault does not have. The funds are simply gone, into wstETH liquidity, with the attacker holding liquid staking receipts that are as good as ether. The systemic risk remained contained, as the firms noted — no Aave market or Base infrastructure was impaired — but systemic containment is cold comfort to the depositors whose money is the vault.
7. The Money Trail
The ledger, as far as public sources carry it. In: one attacker contract deployment, two Safe transactions, one borrow. Out: 1,783.067 aBaswstETH borrowed against the vault's position; ~1,783 wstETH (~$6.0–6.1M at the prints used) redeemed at Aave V3 and moved to attacker-controlled addresses. Left behind: ~$31.7M in vault assets, reachable by the same mechanism. No freeze, no bounty, no negotiation and no claim exists as of this writing. The wstETH denomination is worth a sentence: the thief is holding staked-ether receipts, not an illiquid altcoin — there is no dump risk to monitor and no exchange chokepoint to watch, only an address to wait on. Selling ~1,783 wstETH could create brief market pressure, but the receipts' peg was never at risk; this is the cleanest possible exit an exploiter of this class can draw.
8. The Lesson
Three lessons, in descending order of portability. First, permission management is the attack surface that audits do not cover: the vault's calculation logic was fine, its Aave integration was fine, and its allowlist — the security feature — was the vulnerability, because the list is only as strong as the process that edits it. Any treasury should be able to answer, on paper, who its signers are, what they verified before signing, and how long a change sits in a timelock; '3-of-7' is a threshold, not a process. Second, operational silence is a signal you can monitor: the Safe had executed nothing for 25 days before two transactions a minute apart — a dormancy alarm on privileged safes would have flagged exactly this shape, and it costs nothing to run. Third, anonymity has a price and this vault paid it: an unclaimed contract cannot be paused, negotiated with, or defended, and its remaining $31.7M is now a countdown measured in the attacker's discretion. The general form holds from Neutron's governance vote to Bitget's backend to this allowlist: the layer that decides which actions are legitimate is the asset — and if that layer's owners are anonymous, the depositors are the only parties with something to lose.
Sources
- Blockaid alert (Oct 4, 09:20 UTC, $2.02M initial estimate) and PeckShieldAlert on-chain alert (~1,783 wstETH, ~$6M).
- GoPlus Security alert (aBaswstETH borrow and Aave V3 redemption); CertiK and ExVul monitoring; Tokenpost and Odaily summaries.
- Metaverse Post reconstruction (3-of-7 Safe, Safe Proxy Factory 1.4.1, anonymous signers, OZ transparent proxy, ~$31.7M remaining, 25-day dormancy).
- ThreatCluster analysis (08:52/08:53 UTC remove-then-re-add sequence; valid signatures; two-explanation framing; wstETH ~$3,386 and ETH ~$2,720 prints).
- On-chain records: Base vault proxy, Safe transactions of Oct 4, attacker and allowlist addresses as published by the reporting firms.
- Comparative containment records as recorded on this site: Cosmos Hub restart notice (Sep 23); Circle/Tether blacklist transactions (Sep 25); NEAR Intents statements (Oct 1–2).
This article is for general information only. It describes publicly reported security incidents; dollar figures are point-in-time estimates drawn from the sources listed above and may be revised as investigations continue. Nothing here is financial, legal or investment advice.
Frequently Asked Questions
Was Aave or Base exploited?
No. Aave V3's Base market priced and settled every position correctly; Base executed every block as designed. The attacker used legitimate borrowing against a position the vault itself held, authorized by the vault's own allowlist. Neither protocol had anything to patch — which is precisely why the incident belongs to the permission layer, not the protocol layer.
Who owns the vault?
Nobody has said. The operating owner is a 3-of-7 Safe whose seven signer addresses have never been publicly identified, no project team has acknowledged the contract, and no statement or remediation plan exists. On-chain analysis can trace the transactions but cannot establish whether the allowlist change came from stolen keys, social engineering, an insider, or the owner — that distinction requires an owner.
Isn't a multisig supposed to prevent exactly this?
A multisig enforces that N of M keys signed. It does not enforce that the signers are honest, informed, or even distinct people. This 3-of-7 had anonymous signers, no published process, no timelock on allowlist changes, and 25 days of silence — and then signed a remove-and-re-add of the attacker's contract within one minute. The signature count was satisfied; that is all a multisig guarantees.
Could this have been prevented, and how?
At the treasury-operations layer, not the code layer: named and accountable signers, a timelock on allowlist changes with an external review window, a dormancy alarm on privileged safes, and an owner who exists publicly enough to pause a contract under attack. The attack succeeded because the answers to 'who can edit who can borrow' were anonymous — and it costs nothing to make those answers public before someone else's Sunday morning reveals them.
Strengthening your defenses? See how transaction fees and energy costs scale on Tron at Tronsell.io.