# Euler Financeプロジェクトがフラッシュローン攻撃を受け、約2億ドルの損失2023年3月13日、Euler Financeプロジェクトは契約の脆弱性によりフラッシュローン攻撃を受け、損失は最大1.97億ドルに達しました。攻撃者はプロジェクト契約内のdonateToReserves関数の流動性チェックが欠如している脆弱性を利用し、複数回の操作を通じて巨額の利益を得ました。! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/social/moments-d96e9a72838647eecb62e1dfc48f2f5d)## 攻撃プロセス分析1. 攻撃者はまず、ある貸出プラットフォームからフラッシュローンで3000万DAIを借り入れ、2つの契約を展開しました:貸出契約と清算契約。2. 攻撃者は、借りた2,000万DAIをオイラー議定書コントラクトに賭け、195,000 eDAIを取得します。3. オイラープロトコルの10倍のレバレッジを使用して、攻撃者は1,956,000 eDAIと2,000,000 dDAIを貸し出しました。4. 攻撃者は残りの1000万DAIを使って部分的な債務を返済し、対応するdDAIを破棄した。その後、再度同等の量のeDAIとdDAIを借り入れた。5. 主な手順:攻撃者はdonateToReserves関数を呼び出し、100万eDAIを寄付した後、清算関数を通じて清算を行い、310万dDAIと250万eDAIを取得しました。6. 最後に、攻撃者は38.9万DAIを引き出し、30万DAIのフラッシュローンを返済し、最終的に8.87万DAIの利益を得ました。! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/social/moments-32928681c9e7631491b5a5f1699820a9)! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/social/moments-6d4e5a95a6c33353e8f326a5f074b12b)! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/social/moments-a52f3c784e670d5ebb507b20436f78a0)! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/social/moments-6246cad18508cd8a8c88619d67fe149c)! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/social/moments-84b8e2f409d5518b194b74407b07e02e)! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/social/moments-17ba97f8bbe91404afdca27e5c1dc559)! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/social/moments-469ffb75f34d18ce6807e39d655ca789)! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/social/moments-365fa6b36d54052ee6efd59f44a1a6f5)! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/social/moments-c071e7e84eb0dc7826b7c954f546987e)## 脆弱性の原因今回の攻撃の核心的な脆弱性は、Euler Financeの契約におけるdonateToReserves関数に必要な流動性チェックが欠如していることです。mintなどの他の重要な関数と比較して、donateToReserves関数はcheckLiquidity操作を実行していません。これにより、攻撃者は通常の流動性チェックを回避し、意図的に清算可能な状態を作り出し、清算から利益を得ることができました。通常、checkLiquidity関数はRiskManagerモジュールを呼び出し、ユーザーのEtokenの数量がDtokenの数量を上回ることを確認して、契約の安全性を維持します。しかし、donateToReserves関数がこの重要なステップを欠いているため、攻撃者はこの脆弱性を利用して攻撃を行うことができました。! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/social/moments-a00d28f9fe7463d52cfd055540fad6af)## セキュリティの提案このような攻撃に対して、私たちはブロックチェーンプロジェクトに次のことをお勧めします:1. コントラクトがローンチされる前に、包括的なセキュリティ監査を実施し、コントラクトの安全性を確保します。2. 借貸関連プロジェクトにおいては、資金の返済、流動性の検出、債務の清算などの重要なプロセスに特に注意を払う必要があります。3. ユーザーの資産状態に影響を与える可能性のあるすべての関数に、流動性チェックなどの必要なセキュリティチェックが含まれていることを確認してください。4. 定期的にコードレビューと更新を行い、発見された脆弱性を迅速に修正します。5. 緊急対応メカニズムを確立し、安全事件が発生した際に迅速に反応し、処理できるようにする。これらの措置を講じることで、プロジェクト側は同様の攻撃を受けるリスクを大幅に低減し、契約の全体的な安全性を向上させることができます。
Euler Financeがフラッシュローン攻撃に遭い、近2億ドルの損失
Euler Financeプロジェクトがフラッシュローン攻撃を受け、約2億ドルの損失
2023年3月13日、Euler Financeプロジェクトは契約の脆弱性によりフラッシュローン攻撃を受け、損失は最大1.97億ドルに達しました。攻撃者はプロジェクト契約内のdonateToReserves関数の流動性チェックが欠如している脆弱性を利用し、複数回の操作を通じて巨額の利益を得ました。
! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/webp-social/moments-d96e9a72838647eecb62e1dfc48f2f5d.webp)
攻撃プロセス分析
攻撃者はまず、ある貸出プラットフォームからフラッシュローンで3000万DAIを借り入れ、2つの契約を展開しました:貸出契約と清算契約。
攻撃者は、借りた2,000万DAIをオイラー議定書コントラクトに賭け、195,000 eDAIを取得します。
オイラープロトコルの10倍のレバレッジを使用して、攻撃者は1,956,000 eDAIと2,000,000 dDAIを貸し出しました。
攻撃者は残りの1000万DAIを使って部分的な債務を返済し、対応するdDAIを破棄した。その後、再度同等の量のeDAIとdDAIを借り入れた。
主な手順:攻撃者はdonateToReserves関数を呼び出し、100万eDAIを寄付した後、清算関数を通じて清算を行い、310万dDAIと250万eDAIを取得しました。
最後に、攻撃者は38.9万DAIを引き出し、30万DAIのフラッシュローンを返済し、最終的に8.87万DAIの利益を得ました。
! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/webp-social/moments-32928681c9e7631491b5a5f1699820a9.webp)
! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/webp-social/moments-6d4e5a95a6c33353e8f326a5f074b12b.webp)
! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/webp-social/moments-a52f3c784e670d5ebb507b20436f78a0.webp)
! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/webp-social/moments-6246cad18508cd8a8c88619d67fe149c.webp)
! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/webp-social/moments-84b8e2f409d5518b194b74407b07e02e.webp)
! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/webp-social/moments-17ba97f8bbe91404afdca27e5c1dc559.webp)
! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/webp-social/moments-469ffb75f34d18ce6807e39d655ca789.webp)
! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/webp-social/moments-365fa6b36d54052ee6efd59f44a1a6f5.webp)
! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/webp-social/moments-c071e7e84eb0dc7826b7c954f546987e.webp)
脆弱性の原因
今回の攻撃の核心的な脆弱性は、Euler Financeの契約におけるdonateToReserves関数に必要な流動性チェックが欠如していることです。mintなどの他の重要な関数と比較して、donateToReserves関数はcheckLiquidity操作を実行していません。これにより、攻撃者は通常の流動性チェックを回避し、意図的に清算可能な状態を作り出し、清算から利益を得ることができました。
通常、checkLiquidity関数はRiskManagerモジュールを呼び出し、ユーザーのEtokenの数量がDtokenの数量を上回ることを確認して、契約の安全性を維持します。しかし、donateToReserves関数がこの重要なステップを欠いているため、攻撃者はこの脆弱性を利用して攻撃を行うことができました。
! [オイラーファイナンスの脆弱性分析:フラッシュローンに攻撃され、1億9,700万ドルを失う方法] ](https://img-cdn.gateio.im/webp-social/moments-a00d28f9fe7463d52cfd055540fad6af.webp)
セキュリティの提案
このような攻撃に対して、私たちはブロックチェーンプロジェクトに次のことをお勧めします:
コントラクトがローンチされる前に、包括的なセキュリティ監査を実施し、コントラクトの安全性を確保します。
借貸関連プロジェクトにおいては、資金の返済、流動性の検出、債務の清算などの重要なプロセスに特に注意を払う必要があります。
ユーザーの資産状態に影響を与える可能性のあるすべての関数に、流動性チェックなどの必要なセキュリティチェックが含まれていることを確認してください。
定期的にコードレビューと更新を行い、発見された脆弱性を迅速に修正します。
緊急対応メカニズムを確立し、安全事件が発生した際に迅速に反応し、処理できるようにする。
これらの措置を講じることで、プロジェクト側は同様の攻撃を受けるリスクを大幅に低減し、契約の全体的な安全性を向上させることができます。