Buffer overflow di Toxcore dieksploitasi dengan mengirimkan paket UDP

Kerentanan (CVE-2-2021) telah diidentifikasi di Toxcore, implementasi referensi dari protokol pesan P44847P Tox, yang berpotensi memicu eksekusi kode saat memproses paket UDP yang dibuat khusus. Kerentanan ini mempengaruhi semua pengguna aplikasi berbasis Toxcore yang tidak menonaktifkan transportasi UDP. Untuk menyerang, cukup mengirimkan paket UDP dengan mengetahui alamat IP, port jaringan, dan kunci DHT publik korban (informasi ini tersedia untuk umum di DHT, yaitu serangan dapat dilakukan pada pengguna atau host DHT mana pun) .

Masalah ini muncul di rilis toxcore 0.1.9 hingga 0.2.12 dan diperbaiki di versi 0.2.13. Dari aplikasi klien, sejauh ini hanya proyek qTox yang merilis pembaruan dengan penghapusan kerentanan. Sebagai solusi keamanan, Anda dapat menonaktifkan penggunaan UDP saat meninggalkan dukungan TCP.

Kerentanan ini disebabkan oleh buffer overflow pada fungsi handle_request(), yang terjadi karena kesalahan penghitungan ukuran data dalam paket jaringan. Secara khusus, panjang data terenkripsi ditentukan dalam makro CRYPTO_SIZE, yang didefinisikan sebagai "1 + CRYPTO_PUBLIC_KEY_SIZE * 2 + CRYPTO_NONCE_SIZE", yang kemudian digunakan dalam operasi pengurangan "panjang - CRYPTO_SIZE". Karena kurangnya tanda kurung di makro, alih-alih mengurangi jumlah semua nilai, kurangi 1 dan tambahkan bagian sisanya. Misalnya, alih-alih "panjang - (1 + 32 * 2 + 24)", ukuran buffer dihitung sebagai "panjang - 1 + 32 * 2 + 24", yang menyebabkan penimpaan data pada tumpukan yang berada di luar buffer batas.

Sumber: opennet.ru

Tambah komentar