June 10, 2025
|

Cork, ResupplyFi, Meta Pool: Hookless, Priceless, and Permissionless Losses

Cork Protocol dropped $12M from an unguarded Uniswap V4 hook. ResupplyFi let 1 wei unlock $9.6M via a vault price trick. Meta Pool’s un-overridden mint logic let attackers mint without deposits. And Force Bridge? Admin keys stolen after shutdown. It’s always the missed check, the dangling override, or the ghost key that costs millions.

In Brief

  • ResupplyFi lost $9.6M after a price manipulation attack.
  • Meta Pool lost $137K due to a missing override in its mint logic.
  • Force Bridge lost $3.8M after a post-shutdown admin key compromise.
  • Cork Protocol lost $12M after an attacker bypassed hook authorization to drain its liquidity vault.

Hacks Analysis

ResupplyFi | Amount Lost: $9.6M

On June 26, the ResupplyFi exploit on the Ethereum mainnet resulted in a $9.6M loss due to a price manipulation attack. The attacker took advantage of a new lending contract with no prior deposits to manipulate the pricePerShare of a vault. The attacker made a large donation to an empty cvcrvUSD vault and artificially inflated the vault’s pricePerShare. The private _updateExchangeRate() function then calculated the exchange rate (1e36 / price) as zero due to the inflated denominator. As a result, the _isSolvent() check calculated LTV = 0. This allowed the attacker to borrow 10M reUSD with 1 wei of collateral.

Press enter or click to view image in full size
Press enter or click to view image in full size

Exploited Contract: 0x6e90c85a495d54c6d7e1f3400fef1f6e59f86bd6

Transaction: 0xffbbd492e0605a8bb6d490c3cd879e87ff60862b0684160d08fd5711e7a872d3

Meta Pool | Amount Lost: $137K

On June 17, the Meta Pool exploit on the Ethereum mainnet resulted in a $137K loss. The root cause of the exploit was a missing override on the mint() function inherited from ERC4626. The attacker first used a flash loan to drain all mpETH from liquidUnstakePool, which allowed to bypass the _getmpETHFromPool() check (refer to the function code below; if the liquidUnstakePool holds zero mpETH, sharesFromPool becomes zero). The attacker was then able to minT mpETH without depositing any ETH.

Press enter or click to view image in full size
Press enter or click to view image in full size

Exploited Contract: 0x3747484567119592ff6841df399cf679955a111a

Example ERC4626 Contract: https://github.com/Vectorized/solady/blob/main/src/tokens/ERC4626.sol

Transaction: 0x57ee419a001d85085478d04dd2a73daa91175b1d7c11d8a8fb5622c56fd1fa69

Force Bridge | Amount Lost: $3.8M

On June 1, the Force Bridge exploit on the BNB chain and Ethereum mainnet resulted in a $3.8M loss due to a private key compromise. The attacker got unauthorized access to admin keys the day after Force Bridge announces it ceasing operations. The attacker targeted bridge contracts and stole USDT, USDC, ETH, DAI, WBTC tokens.

Press enter or click to view image in full size

Transaction: 0x6b6fbd9d6beef56d2a4f0d14852beea381764b962d7d73ecd216b9fd991299a1

Cork Protocol | Amount Lost: $12M

On May 28, the Cork Protocol exploit on the Ethereum mainnet resulted in a $12M loss. The root cause of the exploit was missing proper authorization checks in Cork Protocol’s Uniswap V4-based hook system. The attacker first bought 2.5 Depeg Swaps 19 minutes before expiry, generating a fake annualized risk premium of 1,779 quadrillion percent. This artificially inflated the historical yield average (HIYA), which the next market cycle used to price new Cover Tokens. As a result, the attacker converted 0.0000029 wstETH into over 3,760 CTs post-rollover. The attacker then called the beforeSwap() function with forged parameters, claiming to be the original caller, to have paid the required redemption asset (RA), to be minting Cover and Depeg tokens from a valid market, and to be using a legitimate market ID. Since this function lacked proper authorization controls, it treated the attacker as a valid buyer and transferred reserved Depeg Swaps to their proxy market.

Press enter or click to view image in full size

Exploited Contract: 0x5287e8915445aee78e10190559d8dd21e0e9ea88

Step 1 Tx (Risk Premium Increase: 0x14cdf1a643fc94a03140b7581239d1b7603122fbb74a80dd4704dfb336c1dec0

Step 2 Transaction (converting wstETH to Cover Token): 0xfd89cdd0be468a564dd525b222b728386d7c6780cf7b2f90d2b54493be09f64d

What’s a Rich Text element?

The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.

A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!

Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.

  1. Follow-up: Conduct a follow-up review to ensure that the remediation steps were effective and that the smart contract is now secure.
  2. Follow-up: Conduct a follow-up review to ensure that the remediation steps were effective and that the smart contract is now secure.

In Brief

  • Remitano suffered a $2.7M loss due to a private key compromise.
  • GAMBL’s recommendation system was exploited.
  • DAppSocial lost $530K due to a logic vulnerability.
  • Rocketswap’s private keys were inadvertently deployed on the server.

Hacks

Hacks Analysis

Huobi  |  Amount Lost: $8M

On September 24th, the Huobi Global exploit on the Ethereum Mainnet resulted in a $8 million loss due to the compromise of private keys. The attacker executed the attack in a single transaction by sending 4,999 ETH to a malicious contract. The attacker then created a second malicious contract and transferred 1,001 ETH to this new contract. Huobi has since confirmed that they have identified the attacker and has extended an offer of a 5% white hat bounty reward if the funds are returned to the exchange.

Exploit Contract: 0x2abc22eb9a09ebbe7b41737ccde147f586efeb6a

Ready to Shift Security Assurance In-House? Talk to Our Security Experts Today.