bitcoin
bitcoin

$95863.402755 USD

-2.32%

ethereum
ethereum

$3335.302176 USD

-3.23%

tether
tether

$0.999023 USD

-0.01%

xrp
xrp

$2.170417 USD

-4.38%

bnb
bnb

$691.952767 USD

-1.17%

solana
solana

$189.089991 USD

-3.92%

dogecoin
dogecoin

$0.315379 USD

-3.86%

usd-coin
usd-coin

$0.999985 USD

0.00%

cardano
cardano

$0.868938 USD

-4.29%

tron
tron

$0.252032 USD

-1.65%

avalanche
avalanche

$37.611653 USD

-6.50%

toncoin
toncoin

$5.741274 USD

-3.69%

chainlink
chainlink

$22.780467 USD

-6.60%

shiba-inu
shiba-inu

$0.000022 USD

-5.01%

sui
sui

$4.264153 USD

-5.09%

Nachrichtenartikel zu Kryptowährungen

Flash-Kreditangriff entzieht CloberDEX auf Base 500.000 USD

Dec 26, 2024 at 09:05 am

Kürzlich haben wir einen On-Chain-Angriff auf CloberDEX, ein Projekt auf Base, beobachtet. Das angegriffene Projekt ist CloberDEX, und der Angreifer hat etwa gewonnen

Flash-Kreditangriff entzieht CloberDEX auf Base 500.000 USD

Recently, an on-chain attack was detected against CloberDEX, a project on Base. The attacker gained about 133 ETH, or about 500,000 USD, through this attack.

Kürzlich wurde ein On-Chain-Angriff auf CloberDEX, ein Projekt auf Base, entdeckt. Der Angreifer hat durch diesen Angriff etwa 133 ETH oder etwa 500.000 USD gewonnen.

The attacked project is CloberDEX, and its main functions are as follows: open a new trading pool containing trading pairs A to B and B to A, and each trading pair also contains a preset trading strategy; mint is to add liquidity to the trading pair and obtain LP Token; burn is to destroy LP Token to obtain the corresponding currency.

Das angegriffene Projekt ist CloberDEX und seine Hauptfunktionen sind wie folgt: Öffnen eines neuen Handelspools mit den Handelspaaren A zu B und B zu A, und jedes Handelspaar enthält auch eine voreingestellte Handelsstrategie; mint dient dazu, dem Handelspaar Liquidität hinzuzufügen und LP-Token zu erhalten; Burn besteht darin, LP-Token zu zerstören, um die entsprechende Währung zu erhalten.

Let's take a look at the attack process:

Werfen wir einen Blick auf den Angriffsprozess:

First, the attacker borrowed 267 WETH from Morpho Blue using flashloan.

Zunächst borgte sich der Angreifer per Flashloan 267 WETH von Morpho Blue.

Then, the attacker used open to open two trading pairs on CloberDEX, namely Token/WETH and WETH/Token, where Token is a contract deployed by the attacker himself.

Dann nutzte der Angreifer open, um zwei Handelspaare auf CloberDEX zu eröffnen, nämlich Token/WETH und WETH/Token, wobei Token ein vom Angreifer selbst eingesetzter Vertrag ist.

Then, the attacker used mint to transfer 267 WETH and 267 Token to the newly opened trading pair to add liquidity and obtain LP Token.

Dann nutzte der Angreifer Mint, um 267 WETH und 267 Token auf das neu eröffnete Handelspaar zu übertragen, um Liquidität hinzuzufügen und LP-Token zu erhalten.

So far, there is no problem. Finally, the attacker uses burn to destroy the LP Token just obtained. Let's take a look at the specific implementation of burn;

Bisher gibt es kein Problem. Schließlich nutzt der Angreifer Burn, um den gerade erhaltenen LP-Token zu zerstören. Werfen wir einen Blick auf die spezifische Implementierung von burn.

The control flow goes to the lock function. Similarly, let's take a look at the specific implementation of lock;

Der Kontrollfluss geht zur Sperrfunktion. Schauen wir uns in ähnlicher Weise die spezifische Implementierung von Lock an.

As you can see, the lock function passes bytes caldata data to the lockAcquired function. Let's continue to look at the implementation of this function.

Wie Sie sehen können, übergibt die Sperrfunktion Bytes caldata-Daten an die lockAcquired-Funktion. Schauen wir uns weiterhin die Implementierung dieser Funktion an.

We found this line of code

Wir haben diese Codezeile gefunden

We can see that the function called by the code is determined by data. The first four bytes of data are the signature of _burn, so burn essentially calls _burn.

Wir können sehen, dass die vom Code aufgerufene Funktion durch Daten bestimmt wird. Die ersten vier Datenbytes sind die Signatur von _burn, daher ruft burn im Wesentlichen _burn auf.

We can see that _burn calls pool.strategy.burnHook(msg.sender, key, burnAmount,supply) again, and the processing of the pool's reserver comes after this code. So, the problem lies here. The address of the strategy contract of the pool corresponding to the trading pair can be controlled by the attacker. In this attack, the attacker wrote the address as his own attack contract address: 0x32fb1bedd95bf78ca2c6943ae5aeaeaafc0d97c1 .

Wir können sehen, dass _burn pool.strategy.burnHook(msg.sender, key, burnAmount,supply) erneut aufruft und die Verarbeitung des Pool-Reservers nach diesem Code erfolgt. Das Problem liegt also hier. Die Adresse des Strategievertrags des Pools, der dem Handelspaar entspricht, kann vom Angreifer kontrolliert werden. Bei diesem Angriff schrieb der Angreifer die Adresse als seine eigene Angriffsvertragsadresse: 0x32fb1bedd95bf78ca2c6943ae5aeaeaafc0d97c1 .

When the contract process reaches the BurnHook of the attacking contract, burn is called again to complete the reentrancy attack.

Wenn der Vertragsprozess den BurnHook des angreifenden Vertrags erreicht, wird burn erneut aufgerufen, um den Wiedereintrittsangriff abzuschließen.

The attacker took out 264 WETH and 133 WETH from the CloberDEX contract through this vulnerability, and made a profit of 133.7 ETH after repaying the flashloan loan, which is about 500,000 USD.

Durch diese Schwachstelle entnahm der Angreifer 264 WETH und 133 WETH aus dem CloberDEX-Vertrag und erzielte nach Rückzahlung des Flashloan-Darlehens einen Gewinn von 133,7 ETH, was etwa 500.000 USD entspricht.

The main cause of this vulnerability is that the CloberDEX project contract did not perform reentrancy detection and protection in the code for obtaining and destroying LP Tokens, and the state variables were updated after the contract was called, which eventually led to the attacker using the reentry vulnerability to empty the project's WETH. It is recommended that the project party should conduct multi-party verification when designing the economic model, price calculation mechanism and code operation logic, and try to select multiple audit companies for cross-audit when auditing the contract before it goes online.

Die Hauptursache für diese Schwachstelle liegt darin, dass der CloberDEX-Projektvertrag keine Wiedereintrittserkennung und keinen Wiedereintrittsschutz im Code zum Erhalten und Zerstören von LP-Tokens durchführte und die Statusvariablen nach dem Aufruf des Vertrags aktualisiert wurden, was schließlich dazu führte, dass der Angreifer den Wiedereintritt nutzte Sicherheitslücke, um die WETH des Projekts zu leeren. Es wird empfohlen, dass die Projektpartei bei der Gestaltung des Wirtschaftsmodells, des Preisberechnungsmechanismus und der Code-Betriebslogik eine Mehrparteienüberprüfung durchführt und versucht, bei der Prüfung des Vertrags vor der Online-Veröffentlichung mehrere Prüfungsunternehmen für eine gegenseitige Prüfung auszuwählen.

Nachrichtenquelle:www.panewslab.com

Haftungsausschluss:info@kdj.com

The information provided is not trading advice. kdj.com does not assume any responsibility for any investments made based on the information provided in this article. Cryptocurrencies are highly volatile and it is highly recommended that you invest with caution after thorough research!

If you believe that the content used on this website infringes your copyright, please contact us immediately (info@kdj.com) and we will delete it promptly.

Weitere Artikel veröffentlicht am Dec 27, 2024