Eksploitasi FlashLoopAdapter Menguras $305K dari Dompet Safe yang Terhubung dengan Aave

10 jam yang lalu
4 menit baca
6 tampilan

Eksploitasi FlashLoopAdapter Kustom di Ethereum

Sebuah FlashLoopAdapter kustom yang digunakan untuk mengelola posisi leverage Aave v3 telah dieksploitasi di Ethereum, mengakibatkan dua dompet Safe mengalami kerugian yang diperkirakan mencapai $305.000. Seorang penyerang berhasil melewati kontrol akses modul tersebut. Perusahaan keamanan blockchain SlowMist melaporkan bahwa penyerang mengeksploitasi celah otentikasi dalam kontrak FlashLoopAdapter, yang memungkinkan sebuah Safe palsu untuk melewati pemeriksaan yang seharusnya membatasi akses ke dompet yang telah mengaktifkan modul tersebut. Penyerang berhasil mempertahankan sekitar 114,09 ETH setelah menggunakan modul tersebut untuk memanipulasi posisi yang dipegang oleh dompet yang terkena dampak.

SlowMist TI Alert v3 Loop Safe Module Loss: ~114,09 ETH
Penyebab Utama: Kontrol akses open/close FlashLoopAdapter hanya memeriksa ISafe(msg.sender).isModuleEnabled(address(this)), yang dapat dipalsukan melalui Safe palsu yang selalu mengembalikan true.

Insiden ini melibatkan kontrak kustom yang dibangun di atas Aave, bukan protokol inti Aave v3. Defimon Alerts, yang mendeteksi serangan pada 15:08:57 UTC pada 1 Oktober, menyatakan bahwa Aave v3 sendiri tidak terpengaruh.

Detail FlashLoopAdapter

FlashLoopAdapter adalah modul Safe yang membuka/menutup loop leverage Aave v3 untuk Safes yang mengaktifkannya. Fungsi open/close mempercayai setiap msg.sender yang menjawab…

FlashLoopAdapter dirancang sebagai modul Safe untuk membuka dan menutup posisi leverage melalui Aave v3. Safes yang mengaktifkan modul tersebut dapat menggunakannya untuk mengelola strategi looping yang melibatkan aset yang dipinjam dan jaminan. Menurut SlowMist, kelemahan ditemukan dalam kontrol akses yang digunakan oleh fungsi open dan close adapter. Alih-alih secara independen memastikan bahwa pemanggil adalah Safe yang sah, fungsi tersebut hanya memeriksa apakah ISafe(msg.sender).isModuleEnabled(address(this)) mengembalikan true. Seorang penyerang dapat menerapkan kontrak Safe palsu yang diprogram untuk mengembalikan true ketika FlashLoopAdapter melakukan pemeriksaan.

Setelah Safe palsu melewati tes tersebut, penyerang mendapatkan akses ke fungsionalitas yang seharusnya dibatasi untuk dompet yang berwenang.

Defimon Alerts menyatakan bahwa pemeriksaan yang dilakukan selama callback tidak menghentikan transaksi karena kontrak penyerang juga bertindak sebagai penyedia likuiditas flash.

Fungsi lain, _swap, kemudian memungkinkan panggilan mentah ke swapRouter menggunakan swapCalldata yang disuplai oleh pemanggil. Kedua input tersebut dapat dikendalikan oleh penyerang. Alih-alih menyediakan router swap biasa, penyerang mengatur router ke salah satu dompet Safe korban. Calldata diatur untuk memanggil execTransactionFromModule, sebuah fungsi Safe yang memungkinkan modul yang diaktifkan mengeksekusi transaksi. FlashLoopAdapter sudah diaktifkan oleh Safe korban, sehingga panggilan yang dihasilkan diterima.

Insiden Terkait dan Dampak

Masalah serupa yang melibatkan izin yang terlampir pada modul Safe muncul pada bulan September. Sebuah eksploitasi dompet Safe Ethereum yang melibatkan sekitar 2.900 rsETH dilacak oleh BlockSec ke pemeriksaan otorisasi yang lemah dalam kontrak eksekutor yang terhubung ke modul Safe yang diaktifkan. Sebuah bot MEV mendahului upaya eksploitasi dan menerima aset sebelum transaksi serangan asli dibatalkan, lapor crypto.news sebelumnya.

Serangan FlashLoopAdapter melibatkan lebih dari sekadar mentransfer aset yang sudah ada di dalam dompet yang terkena dampak. Defimon Alerts melaporkan bahwa penyerang mengambil pinjaman flash Morpho WETH dan menggunakan likuiditas yang dipinjam untuk membayar sekitar 1.335 WETH utang Aave yang dimiliki oleh Safe pertama, yang diidentifikasi sebagai 0xcfedf95a3653a128dfc2e4288758a1a1850d169f. Pembayaran utang tersebut membebaskan jaminan yang terikat pada posisi leverage Aave. Penyerang kemudian menggunakan jalur eksekusi modul yang terkompromi untuk membuat Safe menarik sekitar 1.306 weETH ke alamat yang dikendalikan oleh penyerang.

Safe kedua, 0xe3b23e47df7cd85876ac6cb05bdb9d7cd5b28520, kehilangan 6.4 weETH lainnya melalui modul rentan yang sama. Defimon menyatakan bahwa kedua Safe yang terkena dampak memiliki pemilik tunggal yang sama. Sebagian dari weETH yang ditarik ditukar menjadi WETH saat penyerang menyelesaikan pinjaman flash dan bagian lain dari transaksi. Penyerang ditinggalkan dengan sekitar 114,1 ETH, yang bernilai sekitar $305.000 ketika insiden dilaporkan.

SlowMist secara terpisah memperkirakan kerugian sekitar 114,09 ETH dan menyatakan bahwa sekitar 1.300 WETH utang dibayar selama proses pembebasan jaminan.

Penarikan jaminan yang besar tersebut tidak mencerminkan hasil bersih penyerang. Sebagian besar modal yang bergerak melalui transaksi tersebut terkait dengan membayar utang dan membongkar posisi leverage sebelum aset yang tersisa dapat diambil. Tidak ada peringatan keamanan yang mengidentifikasi celah dalam Aave v3 itu sendiri.

Pernyataan dari Aave

Pendiri dan CEO Aave, Stani Kulechov, menegaskan bahwa kontrak yang terkena dampak adalah adapter eksternal pihak ketiga yang dibangun di atas Aave dan memiliki “nol efek pada Aave v3.” Ini bukan kontrak Aave v3, melainkan adapter eksternal pihak ketiga yang dibangun di atas Aave, yang tidak berdampak pada Aave v3. FlashLoopAdapter adalah kontrak kustom terpisah yang menggunakan Aave v3 untuk mengelola posisi leverage yang dipegang melalui dompet Safe.

Kerentanan yang dilaporkan berkaitan dengan bagaimana adapter mengautentikasi pemanggil dan apa yang dapat mereka buat modul yang diaktifkan untuk mengeksekusi. Perbedaan ini mirip dengan insiden lain di mana sebuah protokol atau layanan tetap beroperasi sementara modul yang terhubung ke dompet Safe menyediakan jalur yang digunakan oleh penyerang.

Insiden Lain yang Relevan

Pada bulan Mei, sebuah eksploitasi yang melibatkan SquidRouterModule menguras Safes di Ethereum dan Base. Sekitar $3 juta hingga $3,2 juta dicuri dari 86 dompet setelah penyerang menargetkan modul Safe pihak ketiga, sementara Squid mengatakan kontrak router utama dan dana pengguna tidak terpengaruh. Insiden terkait Safe lainnya muncul beberapa hari kemudian ketika pengguna Gnosis Pay didorong untuk menarik dana setelah eksploitasi yang melibatkan modul penundaan Zodiac-nya.

Salah satu pendiri Gnosis, Martin Köppelmann, mengatakan pada saat itu bahwa celah tersebut dapat memungkinkan penyerang memulai transaksi dari Safes menggunakan modul yang terkena dampak. Modul Safe dapat diberikan izin untuk mengeksekusi transaksi dari dompet tanpa melalui alur transaksi pemilik standar setiap kali. FlashLoopAdapter bergantung pada kemampuan itu untuk mengotomatiskan posisi leverage Aave, tetapi izin yang sama berarti bahwa keberhasilan melewati logika otentikasi adapter dapat mencapai aset yang dikendalikan oleh Safe.

Identifikasi Penyerang

SlowMist mengidentifikasi alamat penyerang sebagai 0x42c2633438609881c8fBAb82414eb9A0c45F9353, sementara kontrak FlashLoopAdapter yang rentan terdaftar sebagai 0x16bb8b912da187870c23ec6756bb3fad061283d8. Urutan serangan menggabungkan otentikasi Safe yang dipalsukan dengan kontrol atas router adapter dan parameter calldata. Setelah kontrak jahat melewati pemeriksaan awal, penyerang mengarahkan adapter kembali ke Safe korban dan memanggil fungsi eksekusi modulnya. Pinjaman flash Morpho menyediakan WETH yang diperlukan untuk membayar utang Aave dompet yang lebih besar sebelum jaminan weETH-nya dapat diambil. Sekitar 1.306 weETH ditarik dari Safe tersebut, sementara 6.4 weETH lainnya diambil dari dompet kedua. Setelah likuiditas yang dipinjam diselesaikan dan sebagian dari aset yang ditarik dikonversi, Defimon Alerts menghitung bahwa penyerang mempertahankan sekitar 114,1 ETH. SlowMist mengklasifikasikan insiden tersebut sebagai kerentanan kontrak pintar dan memperkirakan kerugian yang dihasilkan sebesar $305.000.