#electrum修复4.8.3前版本高危漏洞
Semua 62 tanda tangan berhasil diverifikasi, tetapi alamat penerimanya bukan milikmu

📣 盘面异动群里喊

Electrum, dompet Bitcoin lawas, merilis pembaruan keamanan versi 4.8.3 pada 24 Oktober. Pengumuman resminya mengklasifikasikan kerentanan ini sebagai High dan menyatakan semua versi sebelum 4.8.3 terdampak. Kerentanan ini tidak diberi nomor CVE, tetapi pengumumannya memuat satu kalimat yang serius: sudah ada server yang melakukan hal ini di dunia nyata 🦖

Biasanya, kamu memakai dompet ringan yang tidak mengunduh seluruh blockchain dan hanya memercayai satu server untuk memberi tahu saldo dan transaksimu. Dokumentasi resmi menyebut ini sebagai kompromi yang memang dirancang. Masalahnya, kompromi ini telah dijadikan senjata ⚠️

Penyerang mengendalikan server yang kamu hubungkan. Saat kamu menekan tombol siarkan di dompet, server menelan transaksi asli sehingga transaksi itu sama sekali tidak masuk ke mempool. Lalu server menyisipkan transaksi palsu ke dompetmu. Input, versi, dan waktu penguncian transaksi itu sama persis dengan transaksi yang baru saja kamu buat. Skrip tanda tangan untuk 31 input juga identik byte demi byte. Satu-satunya perbedaan adalah alamat outputnya diganti dengan alamat milik penyerang. Alamat palsu ini dihitung berulang kali hanya agar 4 karakter terakhirnya sama persis dengan alamat tujuan yang benar-benar ingin kamu kirimi dana.

Semua tanda tangan pada transaksi palsu itu tidak valid. Namun, dompet ringan tidak memverifikasi skrip, jadi ia tidak bisa mengetahuinya. Akibatnya, transaksi asli menghilang dari riwayatmu dan hanya tersisa transaksi palsu yang belum dikonfirmasi. Jumlahnya tampak persis seperti yang ingin kamu bayarkan. Penipu juga membuat biaya transaksinya nyaris nol, lalu menunggu sampai kamu sadar transfernya macet dan menekan tombol untuk menaikkan biaya secara manual.

Begitu kamu menaikkan biaya, dompet menandatangani transaksi palsu itu. Kamu sendiri yang menandatangani dan mengirim koin kepada penyerang 💥

Pengumuman tersebut memuat dua kasus nyata. Pada 11 Oktober, pengguna pertama melaporkan masalah ini secara pribadi. Ia menggunakan multisig lama 2-of-3, dua dompet perangkat keras Trezor, 31 input, dan 1 output. Ia sudah mencocokkan alamat di kedua layar perangkat keras sebelum menyiarkan transaksi. Namun, riwayatnya menampilkan transaksi belum dikonfirmasi yang mengirim dana ke alamat asing. Pada 18 Oktober, pengguna kedua melaporkan bahwa ia menaikkan biaya transaksi dan uangnya benar-benar hilang. Hanya 12 hari berlalu dari laporan pertama hingga kerentanan ini diberi label untuk versi 4.8.3, dan 13 hari hingga binernya dirilis.

Menurut saya, inti masalah ini bukan karena Electrum salah menulis kode, melainkan karena ada batas yang selama ini dianggap wajar oleh semua orang: server yang kamu percayai pada dasarnya adalah buku besarmu. Apa pun yang ditampilkan server kepadamu, itulah yang kamu anggap telah terjadi. Kali ini, anggapan tersebut diubah menjadi jalur serangan yang bisa dijalankan.

Bahkan versi 4.8.3 yang sudah diperbaiki hanya memverifikasi input yang berasal dari dompetmu sendiri. Transaksi yang dikirim orang lain kepadamu tetap tidak diverifikasi, karena klien ringan tidak memiliki mesin konsensus lengkap. Pihak resmi Electrum juga mengakui bahwa untuk mencakup bagian ini, transaksi induk yang belum dikonfirmasi harus diverifikasi secara rekursif, dan biayanya terlalu besar.

Ada tiga hal yang bisa kamu lakukan: segera perbarui ke 4.8.3; sebelum menaikkan biaya, selalu periksa alamat output dan jumlahnya; dan untuk jangka panjang, jalankan server sendiri. Pihak resmi menyatakan dengan jelas bahwa pengguna yang terhubung ke server milik sendiri tidak terdampak kerentanan ini.

Kamu biasanya memakai dompet ringan atau menjalankan node sendiri? Ceritakan di kolom komentar.

Ketuk foto profil untuk menonton siaran langsung

Setiap hari, kami mengajakmu mengikuti isu terkini seputar keamanan Bitcoin. Bukan hanya melihat apa yang terjadi, tetapi juga memahami logika dan peluang di baliknya 👀🚀