
These four exploits reveal the breadth of DeFi’s attack surface: Atlantis lost $1M to a long-range governance attack that rewrote its logic. Sturdy bled $770K from a Balancer read-only reentrancy that fed fake prices to its oracle. Cellframe’s liquidity was gamed via token migration and flash loans. LunaFi forgot to lock rewards, letting an attacker drain them in a loop. All different vectors; one common thread: the attacker understands your protocol better than you do.
On June 12, the Sturdy Finance exploit resulted in a loss of $770K due to Balancer.fi Vault contract’s read-only reentrancy vulnerability. The attacker borrowed 50,000 WstETH and 60,000 WETH from Aave through a flash loan. They then deposited 1,100 ETH into Sturdy’s steCRV pool, minting 1,023 steCRV. Using the minted steCRV and 233 cB-stETH-STABLE as collateral, the attacker borrowed 513 WETH from Sturdy. This deposit manipulated the cB-stETH-STABLE price by exploiting Balancer’s joinOrExit() function’s read-only reentrancy vulnerability. The Balancer accounting values were not updated during fallback calls, leading to the Sturdy price oracle incorrectly calculating the cB-stETH-STABLE price.

Exploit Contract: 0xba12222222228d8ba445958a75a0704d566bf2c8
Transaction Hash: 0xeb87ebc0a18aca7d2a9ffcabf61aa69c9e8d3c6efade9e2303f8857717fb9eb7
On June 11, the Atlantis exploit on the BNB chain caused a loss of $1M. The exploit occurred because the attacker managed to become the owner of the Atlantis proxy contract and modify the implementation logic to transfer funds. The exploit took advantage of the time lock period after initiating a proposal in the Atlantis proxy contract, allowing the attacker to gain control. The attacker created a governance proposal in Compound’s GovernorBravo contract, set the admin of multiple ABep20Delegator contracts as attacker contracts, and voted to pass the governance proposal. After waiting for the time lock of 172,800 seconds, the attacker acquired ownership of the proxy contract. Subsequently, the attacker introduced a backdoor function into the implementation logic, enabling them to transfer user assets to their own contract.

Exploit Contract (on BNB Chain): 0x558b96ee93ea9c7ec9839beafab641d75f94e9a3
Transaction Hash: 0x3b0df86f548946d9dda9fb4177ae27bf33f06315c73ea50945ab9e53a041d7e1
On June 1, the Cellframe exploit on the BNB chain led to a loss of $74K as a result of CELL token price manipulation. The attacker utilized a flash loan of 1,000 BNB from DODO and 500,000 CELL tokens from PancakeSwap V3. By migrating CELL tokens, the attacker manipulated the liquidity pools between the old and new Cellframe contracts. Their actions involved decreasing the amount of CELL tokens and increasing the amount of BNB tokens in the old liquidity pool, ultimately inflating the token prices.

Exploit Contract (on BNB Chain): 0x558b96ee93ea9c7ec9839beafab641d75f94e9a3
Transaction Hash: 0x943c2a5f89bc0c17f3fe1520ec6215ed8c6b897ce7f22f1b207fea3f79ae09a6
On May 23, the LunaFi exploit on the Polygon chain resulted in a loss of $35K. The attacker deposited funds into the LunaFi contract, claimed rewards, and withdrew funds to make a profit. The issue arose from a missing time lock in LunaFi’s VLFI_V8 contract’s external claimRewards() function, enabling the attacker to repeatedly claim rewards. As a result, the LFI token price plummeted by 96%. LunaFi acknowledged the exploit and assured affected users that they would be reimbursed for their losses.

Exploit Contract (on Polygon Chain): 0xE6E5f921C8CD480030EFb16166C3f83ABC85298D
Transaction Hash: 0xa0480d0f7c8d8bf898cadde954e773ddc3740f1ffa31cdd98fe4c5f5d8266243