Euler Finance mengalami serangan pinjaman flash, dengan kerugian mencapai 1,97 juta dolar AS
Pada 13 Maret 2023, proyek Euler Finance mengalami serangan flash loan karena celah kontrak, yang mengakibatkan kerugian besar. Penyerang memanfaatkan celah dalam fungsi donateToReserves kontrak yang tidak memiliki pemeriksaan likuiditas, dengan melakukan beberapa operasi untuk memperoleh sejumlah besar dana. Peristiwa ini melibatkan 6 jenis token, dengan total kerugian mencapai 197 juta dolar AS.
Analisis Proses Serangan
Penyerang pertama-tama meminjam 30 juta DAI dari platform pinjaman flash dan menerapkan dua kontrak: kontrak pinjaman dan kontrak likuidasi.
Penyerang menyetor 20 juta DAI ke dalam kontrak Protokol Euler, dan mendapatkan 195.000 eDAI.
Memanfaatkan fungsi leverage 10x dari Protokol Euler, penyerang meminjam 1.956.000 eDAI dan 2.000.000 dDAI.
Penyerang menggunakan sisa 10 juta DAI untuk membayar sebagian utang dan menghancurkan dDAI yang sesuai, kemudian meminjam kembali 1.956.000 eDAI dan 2.000.000 dDAI.
Langkah Kunci: Penyerang memanggil fungsi donateToReserves, menyumbangkan 1 juta eDAI (10 kali lipat dari dana yang dikembalikan). Segera setelah itu, penyerang memanggil fungsi liquidate untuk melakukan likuidasi, mendapatkan 3,1 juta dDAI dan 2,5 juta eDAI.
Terakhir, penyerang menarik 389.000 DAI dan mengembalikan pinjaman flash sebesar 30 juta DAI, akhirnya meraih keuntungan 8,87 juta DAI.
Analisis Penyebab Kerentanan
Masalah inti dari serangan ini terletak pada fungsi donateToReserves dalam kontrak Euler Finance yang tidak memiliki pemeriksaan likuiditas yang diperlukan. Berbeda dengan fungsi mint, fungsi donateToReserves tidak menjalankan langkah checkLiquidity, yang memungkinkan penyerang untuk menghindari pemeriksaan likuiditas yang normal.
Dalam keadaan normal, fungsi checkLiquidity akan memanggil modul RiskManager untuk memastikan jumlah eToken pengguna lebih besar dari jumlah dToken. Namun, karena fungsi donateToReserves tidak memiliki langkah penting ini, penyerang dapat memanfaatkan celah ini untuk terlebih dahulu membuat dirinya berada dalam kondisi yang dapat dilikuidasi, kemudian menyelesaikan operasi likuidasi.
Saran Keamanan
Untuk serangan semacam ini, kami menyarankan pihak proyek DeFi:
Lakukan audit keamanan secara menyeluruh sebelum kontrak diluncurkan, untuk memastikan keamanan kontrak tersebut.
Untuk proyek pinjaman, perlu memperhatikan dengan cermat aspek-aspek kunci seperti pengembalian dana, deteksi likuiditas, dan likuidasi utang.
Setiap fungsi yang mungkin mempengaruhi status dana pengguna harus menerapkan pemeriksaan likuiditas yang ketat.
Lakukan audit dan pembaruan kode secara berkala, segera perbaiki celah yang ditemukan.
Pertimbangkan untuk memperkenalkan mekanisme tanda tangan ganda atau penguncian waktu sebagai langkah keamanan tambahan.
Kejadian kali ini mengingatkan kita bahwa dalam bidang DeFi yang berkembang pesat, keamanan kontrak selalu sangat penting. Pihak proyek perlu terus meningkatkan kesadaran akan keamanan dan mengambil langkah perlindungan ganda untuk melindungi keamanan aset pengguna.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
15 Suka
Hadiah
15
7
Bagikan
Komentar
0/400
HodlVeteran
· 07-13 01:44
Satu lubang lagi, pengemudi berpengalaman sudah menginjaknya selama sepuluh tahun dan masih terus menginjaknya.
Lihat AsliBalas0
DiamondHands
· 07-13 01:36
Sudah meledak lagi
Lihat AsliBalas0
GasFeeCrier
· 07-12 00:27
Kontrak ini terlalu main-main.
Lihat AsliBalas0
NftMetaversePainter
· 07-10 03:38
lagi satu eksploitasi primitif akibat verifikasi algoritmik yang tidak memadai...smh web3 sedang menangis rn
Lihat AsliBalas0
SocialAnxietyStaker
· 07-10 03:26
Kontrak aman banget ya
Lihat AsliBalas0
StakeOrRegret
· 07-10 03:23
Bug bounty sangat diminati ya
Lihat AsliBalas0
BearMarketSurvivor
· 07-10 03:18
Satu lagi kerugian dalam pertempuran, pasar sudah diaktifkan.
Euler Finance mengalami serangan pinjaman flash dengan kerugian sebesar 1,97 juta dolar AS
Euler Finance mengalami serangan pinjaman flash, dengan kerugian mencapai 1,97 juta dolar AS
Pada 13 Maret 2023, proyek Euler Finance mengalami serangan flash loan karena celah kontrak, yang mengakibatkan kerugian besar. Penyerang memanfaatkan celah dalam fungsi donateToReserves kontrak yang tidak memiliki pemeriksaan likuiditas, dengan melakukan beberapa operasi untuk memperoleh sejumlah besar dana. Peristiwa ini melibatkan 6 jenis token, dengan total kerugian mencapai 197 juta dolar AS.
Analisis Proses Serangan
Penyerang pertama-tama meminjam 30 juta DAI dari platform pinjaman flash dan menerapkan dua kontrak: kontrak pinjaman dan kontrak likuidasi.
Penyerang menyetor 20 juta DAI ke dalam kontrak Protokol Euler, dan mendapatkan 195.000 eDAI.
Memanfaatkan fungsi leverage 10x dari Protokol Euler, penyerang meminjam 1.956.000 eDAI dan 2.000.000 dDAI.
Penyerang menggunakan sisa 10 juta DAI untuk membayar sebagian utang dan menghancurkan dDAI yang sesuai, kemudian meminjam kembali 1.956.000 eDAI dan 2.000.000 dDAI.
Langkah Kunci: Penyerang memanggil fungsi donateToReserves, menyumbangkan 1 juta eDAI (10 kali lipat dari dana yang dikembalikan). Segera setelah itu, penyerang memanggil fungsi liquidate untuk melakukan likuidasi, mendapatkan 3,1 juta dDAI dan 2,5 juta eDAI.
Terakhir, penyerang menarik 389.000 DAI dan mengembalikan pinjaman flash sebesar 30 juta DAI, akhirnya meraih keuntungan 8,87 juta DAI.
Analisis Penyebab Kerentanan
Masalah inti dari serangan ini terletak pada fungsi donateToReserves dalam kontrak Euler Finance yang tidak memiliki pemeriksaan likuiditas yang diperlukan. Berbeda dengan fungsi mint, fungsi donateToReserves tidak menjalankan langkah checkLiquidity, yang memungkinkan penyerang untuk menghindari pemeriksaan likuiditas yang normal.
Dalam keadaan normal, fungsi checkLiquidity akan memanggil modul RiskManager untuk memastikan jumlah eToken pengguna lebih besar dari jumlah dToken. Namun, karena fungsi donateToReserves tidak memiliki langkah penting ini, penyerang dapat memanfaatkan celah ini untuk terlebih dahulu membuat dirinya berada dalam kondisi yang dapat dilikuidasi, kemudian menyelesaikan operasi likuidasi.
Saran Keamanan
Untuk serangan semacam ini, kami menyarankan pihak proyek DeFi:
Lakukan audit keamanan secara menyeluruh sebelum kontrak diluncurkan, untuk memastikan keamanan kontrak tersebut.
Untuk proyek pinjaman, perlu memperhatikan dengan cermat aspek-aspek kunci seperti pengembalian dana, deteksi likuiditas, dan likuidasi utang.
Setiap fungsi yang mungkin mempengaruhi status dana pengguna harus menerapkan pemeriksaan likuiditas yang ketat.
Lakukan audit dan pembaruan kode secara berkala, segera perbaiki celah yang ditemukan.
Pertimbangkan untuk memperkenalkan mekanisme tanda tangan ganda atau penguncian waktu sebagai langkah keamanan tambahan.
Kejadian kali ini mengingatkan kita bahwa dalam bidang DeFi yang berkembang pesat, keamanan kontrak selalu sangat penting. Pihak proyek perlu terus meningkatkan kesadaran akan keamanan dan mengambil langkah perlindungan ganda untuk melindungi keamanan aset pengguna.