Community Investigation

Base vault incident: from receipt tokens to bridge withdrawals

dooooo
dooooo

October 05, 2026

ChainBounty investigation analysis: Base vault incident, from receipt tokens to bridge withdrawals, October 4, 2026

ChainBounty · Investigation analysis

Base mainnet · Activity: October 4, 2026 · Reviewed: October 5, 2026

Six transactions moved 1,783.067 aBaswstETH from a Base vault to an intermediate contract on October 4. The selected records then show receipt-token forwarding, a withdrawal of the underlying wstETH, and two Base-side bridge initiations totaling 1,001 wstETH. This reconstruction follows those movements through 20 transaction records, separating the token route from the reported exploit mechanism and the still-unverified destination-chain receipts.

Key findings

  • Six vault outflows transferred exactly 1,783.067 aBaswstETH to a contract deployed by the same address that submitted the outflow transactions.
  • Eight forwarding transfers preceded a pool withdrawal that released approximately 1,783.067 wstETH.
  • Two Base bridge initiations burned 1 and 1,000 wstETH. The events identify an intended recipient; this review has not established receipt on Ethereum.

The review covers one contract deployment and 19 token-movement transactions. All times below are UTC. Approximate figures are marked in the text. The linked receipts retain full addresses and native token precision, and all 20 records are listed below.

The reported incident and the two assets

Blockaid’s October 4 public alert described an exploit of an unnamed vault involving a newly whitelisted contract and estimated about US$2.02 million across approximately four transactions. PeckShield’s alert separately suggested that about 1,783 wstETH, valued at roughly US$6 million, had been drained. These are attributed alert estimates. This review does not assign a revised dollar loss.

The distinction between the two assets is central to the trace. aBaswstETH is an Aave receipt token representing supplied assets and accrued yield. wstETH is the underlying asset released in the later pool withdrawal. Aave’s tokenization documentation explains that a withdrawal burns aTokens and releases the underlying asset. Adding the receipt-token transfers, the withdrawal, and the bridge burns would count successive stages of the same position repeatedly.

Contract deployment and vault outflows

Address 0x0b5126…edb034 deployed the intermediate contract, 0xcdfe91…1f569d, at 07:28:57. It later submitted the six transactions that moved aBaswstETH from vault 0xd1895f…cfcabc to that contract.

The first outflow, for 1 aBaswstETH, occurred at 08:55:01, 86 minutes and four seconds after deployment. Five more transfers followed: 100, 500, 500, 500, and 182.067 aBaswstETH. The last outflow occurred at 09:12:37. Together, the six transfers moved exactly 1,783.067 aBaswstETH over 17 minutes and 36 seconds.

A three-address route shows 1,783.067 aBaswstETH moving from the vault to an intermediate contract in six transfers and approximately 1,783.067 aBaswstETH forwarded to address 0x0b5126…edb034 in eight transfers. A six-row timeline lists vault outflows at 08:55:01 for 1, 09:08:13 for 100, 09:09:21 for 500, 09:10:19 for 500, 09:11:11 for 500, and 09:12:37 for 182.067 aBaswstETH. The receiving address deployed the contract at 07:28:57.

Figure 1. Six vault outflows and eight receipt-token forwards through an intermediate contract. The outflows total exactly 1,783.067 aBaswstETH over 17 minutes and 36 seconds. Forwarding overlaps the outflows; ≈ marks its rounded total. Rows are evenly spaced, not an elapsed-time scale. The receiving address deployed the contract at 07:28:57 UTC.

Address key: Vault 0xd1895f…cfcabc; Intermediate contract 0xcdfe91…1f569d; Receiving address 0x0b5126…edb034.

Source: Basescan transaction receipts linked under Sources and method.

The arrows show the token route. The transaction sender is a separate field: 0x0b5126…edb034 submitted calls to the intermediate contract, while the token Transfer events name the vault as the source of aBaswstETH. That distinction connects the calls to the observed movements without claiming that the vault itself signed a transaction.

Receipt-token forwarding

Eight transactions moved aBaswstETH from the intermediate contract to 0x0b5126…edb034. The first forward, for 1 aBaswstETH, occurred at 08:56:25, 84 seconds after the first vault outflow. The forwarding sequence ended at 09:15:09.

The repeated calls have two distinct selectors: 0x9a39f8dd in the transactions containing vault outflows and 0xcb984317 in the forwarding transactions. Their timing supports a description of staged transfer-and-forward execution. A small first movement followed by larger transfers does not, by itself, establish whether the first movement was a deliberate test.

The observed forwarding total is approximately 1,783.067 aBaswstETH. At full precision it differs slightly from the vault-outflow total, and the receipts also include small zero-address mint transfers. These are separate recorded totals; their small difference should not be treated as an additional loss.

Withdrawal of the underlying wstETH

At 09:23:13, 0x0b5126…edb034 called a contract labeled “Aave: Pool Proxy Base” by Basescan. Its decoded Withdraw event identifies wstETH as the reserve asset and the same address as the recipient.

The transaction burned approximately 1,783.067 aBaswstETH and released approximately 1,783.067 wstETH. Those are related sides of one pool withdrawal. The underlying asset moves out of the pool to the recipient, supporting the description of a withdrawal or redemption rather than a debt repayment.

This is the point where the reviewed route changes from receipt-token transfers to movement of the underlying asset. The pool interaction provides no evidence of a vulnerability in Aave’s contracts. The separate question is how the vault’s receipt tokens became available to the transaction-sending address.

Two Base bridge initiations

At 09:24:15, the withdrawing address sent 1 wstETH to 0xc73448…297f8d. At 09:27:29, that second address initiated a withdrawal through 0xac9d11…4287ab. Lido’s official contract list identifies the call target as its Base L2 ERC20 Token Bridge.

The bridge receipt records a 1-wstETH Transfer to the zero address and a WithdrawalInitiated event. The call went to the bridge contract; the token movement was a burn on Base.

The larger transfer to the second address came at 10:47:23, for approximately 1,782.067 wstETH. Using their full precision, the two selected transfers sum exactly to the wstETH received in the pool withdrawal.

At 12:10:59, the second address initiated a further withdrawal of 1,000 wstETH through the same bridge. Both WithdrawalInitiated events specify 0xc73448…297f8d as the intended destination-side recipient.

Five Base transactions in chronological order. At 09:23:13 UTC, approximately 1,783.067 wstETH moves from the token contract to the first address. At 09:24:15, 1 wstETH moves to the second address; at 09:27:29, that address burns 1 wstETH in a bridge withdrawal. At 10:47:23, approximately 1,782.067 wstETH moves from the first address to the second; at 12:10:59, the second address burns 1,000 wstETH in a bridge withdrawal. No Ethereum receipt is shown.

Figure 2. Five downstream transactions in order: pool withdrawal; transfer; bridge-withdrawal burn; transfer; bridge-withdrawal burn. The 1-wstETH bridge initiation precedes the larger transfer between addresses. Both bridge branches end at Base-side burns; Ethereum receipt has not been verified. Rows are evenly spaced, not an elapsed-time scale.

Address key: Token contract 0x99cbc4…42ef0d; First address 0x0b5126…edb034 (the upstream receiving address); Second address 0xc73448…297f8d; Base-side burn is the zero address.

Source: Basescan transaction receipts linked under Sources and method.

The two initiations total exactly 1,001 wstETH. Their order matters: the first bridge initiation happened before the second address received the larger transfer. Grouping both transfers ahead of both burns would misrepresent that sequence.

Where the trace stops

The vault’s permission path remains unresolved. Blockaid reported a newly whitelisted contract, but the reviewed transfers do not independently establish that change or show how it was authorized. The relevant vault implementation, administrative history, and execution traces are needed to test that explanation. The transaction records also do not identify a person or establish common beneficial control of both addresses.

The two Base events specify an intended recipient, but this review has not matched either initiation to an Ethereum finalization transaction. A destination-chain continuation needs the corresponding withdrawal message, token amount, receiving address, and confirmed receipt before it can follow any onward movement.

Finally, subtracting the two bridge burns from the two selected inflows to 0xc73448…297f8d leaves approximately 782.067 wstETH. This is an arithmetic difference, not a verified current balance. A balance finding needs a query at a specified block or a complete reconciliation through a stated cutoff, including any other transfers.

Sources and method

This reconstruction uses 20 successful Base transaction records inspected on Basescan on October 5, 2026, including relevant decoded events. It is a selected-record review, not a complete account-history reconciliation or a self-hosted chain replay. The public alert estimates are separately attributed above.

post_like_sub0
post_total_comment_sub0

9 reads

0/500 bytes