Revisiting The Redemption Flashloan Attack

研究与成果 安全事件分析
Revisiting The Redemption Flashloan Attack

TL;DR

On April 18 2022, the 2OMB team commissioned an audit of their new decentralized exchange project called Redemption. Later that day, the project suffered from a massive coordinated flash loan attack resulting in the loss of approximately 4 million 2OMB tokens, or $1,600,000 in equivalent, at the peak of the attack.

Event Summary

On April 18 2022, at 11:35:31 AM +UTC, the Redemption-LP experienced flashloan arbitrage attacks, causing approximately $1,600,000 loss. The incident stems from the vulnerability that no fee is charged before the flashloan is repaid, and corresponding token were directly transferred to the distributor from the Redemption-LP Pair, which leads to the price difference between ​Redemption-LP and other normal Pairs. During the attack, the price of its own tokens tripled due to malicious interference.

The project that utilized Redemption for FTM-based "yield farming" confirmed the attack on their social media accounts that same day and recommended its users to remove liquidity immediately but restrain from selling native assets 2OMB amd 3OMB.

Attack Technical Analysis

Transaction 0xb134f5d0609863aeaab8b8aeb77765a7a0f1e6a379c27455845e46d2261c46a9 is used as explanation.

Step 1:

The attacker repeatedly consumed 2OMB tokens in the 2omb-WFTM RedemptionPair to increase the price of 2OMB in the 2omb-WFTM RedemptionPair:

  1. The attacker flashloaned multiple 2OMB and repaid the flashloan immediately
  2. As there is no fee applied (feeAmount = 0), the attacker does not need to pay any fees before repay the flashloan. After the flashloan was repayed, a certain amount (3%) of 2OMB tokens will be taken out of the RedemptionPair and transferred to the 2OMB DistributiorV2.
  3. Therefore, by repeating steps 1~2, the attacker can use flashloan to take 2OMB tokens out of the pool, thus increasing the price of 2OMB tokens in the RedemptionPair.

Step 2:

As the price of 2OMB in the RedemptionPair has been increased, the attacker can buy 2OMB in a normal pool (for example, Spooky LP Pair) with normal price. And then sell 2OMB in the RedemptionPair with higer price.

Exploited contracts

  1. WFTM-2OMB Redemption LP: 0x5D5...
  2. WFTM-2SHARE Redemption LP: 0x7F7...
  3. 3OMB-WFTM Redemption LP: 0xf5f...
  4. WFTM-3SHARE Redemption LP: 0xbA7...
  5. DEVIL-WFTM Redemption LP: 0x0c2...

Contract Vulnerability Analysis

The root cause of this exploit is a design flaw of the swap function in the RedemptionPair contract. The modified swap function from the Uniswap V2 introduces two new features, one of which is the feeAmount is a variable(the default value is 0). The other is the caller of the swap function needs to pay the controller fee. __However, the controller fee is paid after the K invariant check and is directly transferred out from the pool to the controller fee address. __

e52c06dc-8e47-4952-a3b1-5055d3bba9bf

Since the controller fee address has not been set as ZERO address, then the transferred amount from the current pool is nonzero, which will cause imbalance of prices in the Redemption pool. The attacker repeatedly calls the swap function to send the token to himself/herself to amplify the imbalance of the price in the Redemption pool. Eventually, the attacker utilizes the Uniswap V2 pair to buy the tokens (in fair price) and sells them in the Redemption pool to make profits.

0601b16b-eb33-4c3b-bec1-bdfbcb1ea83f

The controller fee is sent from the pool to the controller fee address after the above swap.

f202bcf4-8d27-4dc1-b0b3-f81bc078102f

Would we spot the issue during the audit?

Yes, we would probably find out this Uniswap pair contract is quite different from the original Uniswap/PancakeSwap V2 pair.

相关博客

Revisiting The Day of Defeat Rugpull

Revisiting The Day of Defeat Rugpull

On May-05-2022 +UTC, approximately $1.35M worth of assets were stolen from the DoD token with two EOAs involved.

Revisiting The My Farm Pet Flashloan

Revisiting The My Farm Pet Flashloan

On 06 October 2021, MyFarmPet was hit by a malicious flashloan attack which profited ~31k BUSD and 100 BNB (~$22k) being deposited into Tornado Cash.

Revisiting Rikkei Finance Exploit

Revisiting Rikkei Finance Exploit

In this article we will take a look back at the exploit that occurred on Rikkei Finance which took place on 15 April 2022. The hacker was able to change the oracle to a malicious smart contract due to a lack of control measures to access the SetOracleData causing a loss of $1.1m.