Crypto exploits

Vault4626 exploit analysis

Vault4626 quoted idle WETH into USDC-deposit NAV while redeeming in the actual mix, so a USDC flash plus a WETH donation and a single redeem swept the donated WETH. DeFiHackLabs reconstructs about 13.53 WETH on Base at block 47,958,574.

Reported loss
13.53 WETH, per DeFiHackLabs
Occurred
Logged

Logged as “2026-06-29: Business Logic Flaw on Vault4626”.

Analysis1 min read

Vault4626 was an ERC-4626 wrapper whose totalAssets() quoted idle non-asset WETH in the vault's books as if it were the deposit asset (USDC), but whose redeem() later paid the depositor in the actual present mix of USDC plus whatever WETH the deposit had accumulated. An attacker could therefore donate WETH into the vault to inflate totalAssets(), deposit borrowed USDC to capture a majority of the inflated share supply, and then redeem - getting back the USDC plus all the donated WETH, on a vault whose actual USDC deposits were unchanged.

The attacker at 0xA27eAE743Cd8C03E9b7c25ebF43DADbBC6Df9bFA flashed 1,755,018,731,120 USDC and 12.92 WETH from the corresponding Balancer V3 pool (USDC being the deposit asset, WETH being the donated non-asset the vault's NAV used to count). With a dominant share position it then redeemed for the inflated mix.

DeFiHackLabs reports a total loss of about 13.53 WETH against the live Base state at block 47,958,574. The drain is in 0x2f2e12fbdf541c28f3667153e5338f73a313096338dc5ca592453566debcd790 on Basescan. The vault proxy is 0x72dbAA8A09d71D09c6De0de439968e1E7c122020, with implementation 0xD08579102fc28355C5839019b730Ce58F84E6a4d.

What would have prevented it: a totalAssets() that excludes any balance whose asset is not the deposit asset, or a redeem() that paid strictly in the deposit asset. Either of those makes the donation vanish from the accounting side.

Sources read (3)

Other exploits

Query every incident yourself — free, no signup

Updated 14 Oct 2026. Figures are as reported by the sources listed above and are not independently verified.