Peretasan @ResupplyFi baru-baru ini menunjukkan bagaimana pembagian bilangan bulat sederhana dapat menyebabkan manipulasi lemari besi yang dahsyat. Eksploitasi senilai $9,56 juta dieksekusi dalam beberapa jam setelah penerapan. Mari kita uraikan kerentanan ERC4626 kritis ini ↓
2/ Vektor serangan: ERC4626 manipulasi "donasi pertama": • Brankas kosong saat penyebaran • Penyerang menyetor 1 wei • Melakukan donasi aset besar • Harga saham melonjak secara astronomis • Perhitungan nilai tukar protokol terputus
3/ Kerentanan dalam satu baris: _exchangeRate = 1e36 / IOracle(_exchangeRateInfo.oracle).getPrices(alamat(jaminan)); Pembagian bilangan bulat tanpa perlindungan pembulatan → nilai tukar diputar ke nol ketika harga oracle terlalu besar.
4/ Rantai eksploitasi: 1. Setor 1 wei ke dalam brankas kosong 2. Donasi untuk meningkatkan harga saham 3. Oracle melaporkan harga yang melambung 4. Nilai tukar = 0 karena pembagian 5. Pemeriksaan LTV: 0 <= maxLTV (selalu benar!) 6. Pinjaman tanpa batas tidak terkunci
5/ Pencegahan itu sederhana: _exchangeRate = 1e36 / harga; require(_exchangeRate 0, "Tarif tidak valid"); Juga: • Terapkan setoran minimum • Tambahkan cek rasio saham • Pantau likuiditas brankas
6/ Pelajaran kunci: brankas ERC4626 membutuhkan perlindungan ekstra saat penerapan. Masalah "deposan pertama" bukanlah hal baru, tetapi ResupplyFi menunjukkan bagaimana ia dapat mengalir ke kerentanan kritis. Baca analisis teknis lengkapnya di blog kami:
3,39K