Fungsi transferToken()
tidak melakukan validasi terhadap alamat tujuan. Hal ini memungkinkan pengiriman token ke alamat 0x0 atau alamat yang tidak valid, sehingga menyebabkan kehilangan aset permanen.
Likelihood:
Reason 1 //Reason 1: Terjadi setiap kali pengguna salah memasukkan alamat tujuan.
Reason 2 //Tidak ada mekanisme validasi yang mencegah pengiriman ke alamat address(0).
Impact:
Impact 1Token yang dikirim akan hilang secara permanen.
Impact 2Kerugian finansial langsung bagi pengguna dan menurunkan kepercayaan pada smart contract.
Misalnya pengguna memanggil fungsi transferToken dengan parameter berikut:
Hasilnya, 1000 token akan terkirim ke alamat 0x0 dan tidak bisa dipulihkan.
diff
- token.transfer(to, amount);
+ require(to != address(0), "Invalid address");
+ token.transfer(to, amount );
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.
The contest is complete and the rewards are being distributed.