Pada pukul 04:22:49 tanggal 16 Mei 2022, waktu Beijing, tim teknologi keamanan CertiK memantau bahwa FEG mengalami serangan flash loan skala besar pada rantai Ethereum dan BNB, yang mengakibatkan kerugian aset senilai sekitar US$1,3 juta.
Serangan ini disebabkan oleh kerentanan dalam fungsi "swapToSwap ()", yang secara langsung menggunakan "jalur" yang dimasukkan oleh penggunasebagai pihak tepercaya tanpa menyaring dan memverifikasi parameter yang masuk, memungkinkan parameter (alamat) "jalur" yang tidak diautentikasi ke menggunakan aset kontrak saat ini.
Oleh karena itu, dengan berulang kali memanggil "depositInternal()" dan "swapToSwap()", penyerang dapat memperoleh izin untuk menggunakan aset kontrak saat ini tanpa batasan , sehingga mencuri semua aset dalam kontrak.
Salah satu alamat kontrak yang terpengaruh: https://bscscan.com/address/0x818e2013dd7d9bf4547aaabf6b617c1262578bc7
Transaksi kerentanan
Alamat kerentanan: https://bscscan.com/address/0x73b359d5da488eb2e97990619976f2f004e9ff7c
Contoh transaksi kerentanan: https://bscscan.com/tx/0x77cf448ceaf8f66e06d1537ef83218725670d3a509583ea0d161533fda56c063
Pelacakan Dana Dicuri: https://debank.com/profile/0x73b359d5da488eb2e97990619976f2f004e9ff7c/history
alamat yang relevan
Alamat penyerang: https://bscscan.com/address/0x73b359d5da488eb2e97990619976f2f004e9ff7c
Kontrak penyerang: https://bscscan.com/address/0x9a843bb125a3c03f496cb44653741f2cef82f445
Alamat token FEG: https://bscscan.com/token/0xacfc95585d80ab62f67a14c566c1b7a49fe91167
FEG Dibungkus BNB (fBNB): https://bscscan.com/address/0x87b1acce6a1958e522233a737313c086551a5c76#code
langkah serangan
Alur serangan berikut didasarkan pada transaksi kerentanan ini: https://bscscan.com/tx/0x77cf448ceaf8f66e06d1537ef83218725670d3a509583ea0d161533fda56c063
① Penyerang meminjam 915 WBNB dan menyetorkan 116 BNB ke fBNB.
② Penyerang membuat 10 alamat untuk digunakan dalam serangan selanjutnya.

③Penyerang mendepositkan fBNB ke dalam kontrak FEGexPRO dengan memanggil "depositInternal()".
"_balances2[msg.sender]" bertambah sesuai dengan saldo alamat saat ini.

④ Penyerang memanggil "swapToSwap()", dan parameter jalur adalah alamat kontrak yang dibuat sebelumnya.
Fungsi ini memungkinkan "jalur" untuk mendapatkan 114 fBNB dari kontrak FEGexPRO.

⑤ Penyerang berulang kali memanggil "depositInternal()" dan "swapToSwap()" (langkah ③ dan ④), memungkinkan beberapa alamat (dibuat pada langkah ②) untuk memperoleh token fBNB karena alasan berikut:
Setiap kali "depositInternal() " dipanggil, _balance2[msg.sender] akan meningkat sekitar 114 fBNB.
Setiap kali "swapToSwap()" dipanggil, kontrak yang dibuat oleh penyerang dapat memperoleh izin penggunaan dari 114 fBNB.
⑥ Karena penyerang mengontrol 10 alamat, setiap alamat dapat menghabiskan 114 fBNB dari alamat saat ini, sehingga penyerang dapat mencuri semua fBNB dalam kontrak yang diserang.

⑦ Penyerang mengulangi langkah ④⑤⑥ untuk menghabiskan token FEG dalam kontrak.

⑧ Akhirnya, penyerang menjual semua aset yang habis, membayar pinjaman kilat, dan akhirnya mengambil sisa keuntungan.
Keberadaan aset
Pada 6:43 tanggal 16 Mei 2022, dana yang dicuri masih disimpan di dompet penyerang (0x73b359d5da488eb2e97990619976f2f004e9ff7c) di rantai Ethereum dan BSC.
Dana asli dari uang tunai Tornado di Ethereum dan BSC: https://etherscan.io/tx/0x0ff1b86c9e8618a088f8818db7d09830eaec42b82974986c855b207d1771fdbe
https://bscscan.com/tx/0x5bbf7793f30d568c40aa86802d63154f837e781d0b0965386ed9ac69a16eb6ab
Penyerang menyerang 13 kontrak FEGexPRO , berikut gambarannya:
