Reentrancy Attack adalah jenis serangan terhadap smart contract di mana penyerang secara berulang kali memanggil fungsi eksternal kontrak sebelum transaksi sebelumnya selesai diproses.
Ini memungkinkan penyerang untuk menguras dana atau mengubah keadaan kontrak dengan cara yang tidak diinginkan sebelum kontrak menyadari perubahan status sebelumnya.
Reentrancy attack terjadi ketika smart contract memanggil kontrak lain sebelum memperbarui statusnya sendiri. Dalam serangan ini, penyerang bisa membuat serangkaian panggilan ulang ke kontrak asli, sehingga kontrak tersebut terus mentransfer dana tanpa menyadari bahwa nilai didalamnya sudah berkurang.
Serangan semacam ini sering terjadi pada smart contract yang ditulis dengan celah di logika pemrogramannya. Untuk mencegah serangan ini, para pengembang biasanya menggunakan pola desain seperti “checks-effects-interactions,” “Tim keamanan menemukan celah reentrancy attack dalam kontrak kami yang dapat memungkinkan pencurian dana.”