Cream Finance の再入脆弱性イベント分析
创宇区块链安全实验室
2021-09-01 10:08
本文约853字,阅读全文需要约3分钟
8月30日、イーサリアム上のDeFiプロトコルであるCream Financeがリエントランシーの脆弱性の影響を受け、1,800万ドル以上の損失を被りました。

序文

8月30日、KNOW Chuangyu Blockchain Security Labは、イーサリアム上のDeFiプロトコルであるCream Financeが再入脆弱性の影響を受け、その結果1,800万米ドル以上の損失が発生したことを検出しました。研究所はできるだけ早く事件を追跡し、分析しました。

関与するオブジェクト

関与するオブジェクト

0x38c40427efbaae566407e4cde2a91947df0bd22b

0x0ec306d7634314d35139d1df4a630d829475a125

攻撃には次のコントラクトアドレスが含まれます。

CErc20Delegator:0x2db6c82ce72c8d7d770ba1b5f5ed0b6e075066d6

CEther:0xd06527d5e56a3495252a528c4987003b712860ee

Amp:0xff20817765cb7f73d4bde2e66e067e58d11095c2

被害者には契約住所が含まれます:

攻撃プロセスを簡単に説明します

(1) まず、ハッカーはフラッシュ ローンのコントラクト 0x38c4 を通じてスタートアップ キャピタル 500 ETH を貸し出します。

(2) 証明書を取得するための住宅ローンETH

(3) コントラクト 0x38c4 を通じて CErc20Delegator コントラクトを呼び出し、19,480,000 AMP を貸し出します。

(4) リエントランシーの脆弱性を利用して 355 ETH を貸与するために CEther コントラクトを呼び出し続ける

(5) コントラクト 0x0ec3 を使用して、コントラクト 0x38c4 の超過ローン清算を実行します。

(7) フラッシュローンを返却する

脆弱性の原因分析

脆弱性の原因分析

利益条件

ローンが発生すると、borrowFresh 関数は最初に doTransferOut 関数を通じて転送し、次に最新の変更を記録します。

doTransferOut 関数に含まれる転送関数は、_callPostTransferHooks 関数を使用して、呼び出し側コントラクトの tokensReceived 関数をコールバックします。

要約する

要約する

このフラッシュローンセキュリティインシデントは主に、プロジェクト当事者がトークン設計時にプロトコル間の互換性を考慮しなかったことによって引き起こされたリエントリー危機が原因であり、実際、同様のコールバック機能を備えたERC777トークンがリエントリー危機に陥っていることが少し前に明らかになっている。 -entry の脆弱性: プロジェクト当事者が発見し、時間内にフォローアップすれば、損失を軽減、さらには回避できるはずです。


创宇区块链安全实验室
作者文库