Odaily Frontline|DeFiプロトコルのPickle Financeが抜け穴で2000万ドル近く損失
この記事の由来はThe Block、Cointelegraph
日常翻訳者 |
によるとThe Blockこの記事の由来は
日常翻訳者 |
によると0x70178102AA04C5f0E54315aA958601eC9B7a4E08。
報道によると、DeFiプロトコルのピクル・ファイナンスは土曜日、バグによりDAIで2000万ドル近くを失った。この脆弱性の悪用には、Compound プロトコルを使用して DAI 預金を通じて収入を得る Pickle Finance の DAI pJar 戦略が関与していると報告されています。エクスプロイトによる資金がアドレスに送金されましたホワイトハットハッカーであり、DeFi Italyの共同創設者であるPickle Financeのバグによる2,000万ドル近い損失について

エミリアーノ・ボナッシ 言う
、攻撃者は、従来の Jar と同じインターフェイスを持ちながら悪を行うスマート コントラクトである「Evil Jar」を展開しました。その後、攻撃者は「邪悪な Jar」と本物の cDAI Jar の間で資金を交換し、2,000 万ドル相当の預金を盗みました。副題:

公式回答: LP は問題が解決されるまで Jar から資金を引き出すことが推奨されます
11 月 22 日、Pickle Finance は、当社の DAI PickleJar 戦略が悪用されたとの報告があるとツイートしました。私たちはこの問題を積極的に調査しており、さらなる最新情報を提供する予定です。問題が解決されるまで、すべての LP が Jar から資金を引き出すことをお勧めします。https://vfat.tools/pickle/具体的な操作は以下の通り
1) 農場からの放出:
アクセスhttps://github.com/pickle-finance/contracts#pickle-jars-pjars、ウォレットを接続します。下にスクロールしてファームを見つけ、「UNSTAKE」をクリックします。これにより、ピクルス報酬も獲得できます。ここで、Jar から解凍する必要があります。

2) Jar からの引き出し:
アクセス
3) Jar を表す Etherscan ページで、CONTRACT -> WRITE CONTRACT -> CONNECT TO WEB3 (WEB3 に接続) をクリックします。ポップアップが表示されます。 「OK」をクリックします。接続できない場合は、再度「CONNECT TO WEB3」をクリックすると接続されます。
4) オプション 15 を入力し、青いボタン「書き込み」をクリックします。次に、通常どおり (高速ガスを使用して) メタマスク トランザクションを完了します。
5) 資金を引き出す必要があるすべての Jar に対してこのプロセスを繰り返します。
副題
フォローアップアップデート
22日午後、SlowMistセキュリティチームは、関連インシデントをできるだけ早く追跡調査し、分析したと述べた。分析プロセスの概要は次のとおりです。
1. プロジェクトのコントローラー コントラクトの swapExactJarForJar 関数により、トークン交換のために 2 つの任意の Jar コントラクト アドレスを渡すことができます。その中で、_fromJar、_toJar、_fromJarAmount、および _toJarMinAmount はすべてユーザーが制御できる変数です。攻撃者はこの機能を使用して、_fromJar と_toJar には独自のアドレスを指定します。_fromJarAmount は、コントラクトを抽出するために攻撃者が設定した DAI の量で、約 2,000 万 DAI です。
2. swapExactJarForJar 関数を使用した交換プロセス中に、コントラクトは、受信する _fromJar コントラクトと _toJar コントラクトの token() 関数を通じて、対応するトークンを取得します。これは、交換される資産を指定するために使用されます。 _fromJar コントラクトと _toJar コントラクトは両方とも攻撃者によって渡されるため、token() 関数を使用して取得される値も制御可能です (ここでは、_fromJar コントラクトと _toJar コントラクトから取得されるトークンが DAI です)。
3. このとき交換が発生し、ControllerコントラクトはtransferFrom関数を使用して_fromJarコントラクトから一定量のptokenを転送しますが、fromJarコントラクトは攻撃者が管理するアドレスであるため、ここで転送されるptokenは攻撃者の偽造通貨。同時に、_fromJar コントラクトからコントラクトによって取得されたトークンは DAI であるため、コントラクトはコントラクト内の資金が交換に十分であるかどうかを判断し、そうでない場合はストラテジー プールから一定量のトークンを引き換えます。そしてそれらをコントローラーコントラクトに転送します。この攻撃では、契約内の DAI が交換に十分ではないため、この時点で、契約は、攻撃者が設定した 2,000 万 DAI を補うために不足したシェアを戦略プールから引き出します。4. 交換は続行されます。コントローラ コントラクトは、攻撃者が設定した 2,000 万 DAI を補うためにポリシー プールから DAI を提案した後、_fromJar の撤回関数を呼び出して、攻撃者が転送した偽の ptoken を 3 番目のステップで書き込みます。そして、コントラクトは、現在のコントラクトの _toJar コントラクトで指定されたトークンの残高を判断します。_toJar コントラクトで指定されたトークンは DAI であるため、Controller コントラクトは、コントラクトの DAI の残量を判断します。 3 番目のステップに進むと、コントローラー契約は 2,000 万 DAI を収集したため、DAI の残高は 2,000 万になります。このとき、Controller コントラクトは _toJar コントラクトのデポジット関数を呼び出し、攻撃者が管理する _toJar コントラクトに 2,000 万 DAI を転送します。この時点で、攻撃者は利益を獲得したことになります。,概要: この攻撃では、攻撃者はコントローラー コントラクトの swapExactJarForJar 関数を呼び出すときに _fromJar と _toJar のコントラクト アドレスを偽造し、コントラクト内の本物の DAI と引き換えに偽造通貨を転送することで攻撃プロセスを完了します。また、Pickle Finance 攻撃に関しては、



