• CrossCurve lost $1.4M due to missing access control checks.
  • JFIN lost $15K because of a double counting error for reward calculation.
  • FutureSwapX lost $500K after flash-loaned tokens were counted as voting power.
None

Hacks Analysis

CrossCurve | Amount Lost: $1.4M

On February 1st, the CrossCurve exploit across multiple chains resulted in a $1.4M loss. The root cause was a missing access control check in the expressExecute() function of the cross-chain receiver contract. This function executed messages without verifying that they were authorized by the Axelar Gateway. The only validation was that a commandId had not been used before. This allowed anyone to generate a fresh commandId and call expressExecute() directly. The attacker supplied arbitrary source chain data and a crafted ABI-encoded payload. The contract trusted this input and executed internal logic. This allowed the attacker to transfer tokens to their own wallet.

None

Exploited Contract: 0xb2185950f5a0a46687ac331916508aada202e063

Transaction: 0x37d9b911ef710be851a2e08e1cfc61c2544db0f208faeade29ee98cc7506ccc2

JFIN | Amount Lost: $15K

On December 20th, the JFIN exploit on the Ethereum mainnet resulted in a $15K loss. The root cause of the exploit was a reward calculation error (double counting) in the JFIN LCBridgev2Token contract's stake() function. Before updating a user's stake, the contract added getReward(account) to debtReward. However, getReward() already included the existing debtReward. This caused the old debt to be counted twice. By repeatedly calling stake() with 1 WEI, an attacker inflated debtReward. The attacker then called claimReward() to withdraw the inflated balance.

None

Exploited Contract: 0x3EbFd0EFC49a27fb633bd56013E4220EBC2c3C6d

Transaction: 0xf867d1d7164ac9178d81696c989f65e817b8cab14850345ab3a1f99bbe547210

FutureSwapX | Amount Lost: $500K

On December 14th, the FutureSwapX exploit on the Ethereum mainnet resulted in a $500K loss. The root cause of the exploit was a voting logic vulnerability that allowed flashloaned tokens to be counted as voting power. The attacker first flash loaned 3.6M FST tokens and created a proposal in the same transaction. FutureSwap's Governance contract recorded the attacker's inflated balance. The attacker then voted using the recorded snapshot balance. After voting, the flash loan was repaid. The proposal passed with artificial voting power, allowing the attacker to drain funds.

None

Exploited Contract: 0x0a7f8161605acc552fa38fdb8ee7d8177c9ac22a

Transaction: 0x23c6a1e3fa409fcf17b4a6c385924a17546772ce77b314d001cbf0dab9469ba3

Olympix: Your Partner in Secure Smart Contracts

Olympix provides advanced Solidity analysis tools to help developers identify and fix vulnerabilities before they become critical exploits.

Get started today to fortify your smart contracts and proactively shield them from exploits in the evolving Web3 security landscape.

Connect with us on:

Twitter | LinkedIn | Discord | Medium | Instagram | Telegram | Newsletter