Limpahan penimbal dalam Toxcore dieksploitasi dengan menghantar paket UDP

Kerentanan (CVE-2-2021) telah dikenal pasti dalam Toxcore, pelaksanaan rujukan protokol pemesejan Tox P44847P, yang berpotensi mencetuskan pelaksanaan kod apabila memproses paket UDP yang dibuat khas. Kerentanan mempengaruhi semua pengguna aplikasi berasaskan Toxcore yang tidak mempunyai pengangkutan UDP dilumpuhkan. Untuk menyerang, adalah cukup untuk menghantar paket UDP yang mengetahui alamat IP, port rangkaian dan kunci DHT awam mangsa (maklumat ini tersedia secara terbuka dalam DHT, iaitu serangan mungkin dibuat pada mana-mana pengguna atau hos DHT) .

Isu ini muncul dalam keluaran toxcore 0.1.9 hingga 0.2.12 dan telah ditetapkan dalam versi 0.2.13. Daripada aplikasi pelanggan, hanya projek qTox setakat ini telah mengeluarkan kemas kini dengan penghapusan kelemahan. Sebagai penyelesaian keselamatan, anda boleh melumpuhkan penggunaan UDP sambil meninggalkan sokongan TCP.

Kerentanan disebabkan oleh limpahan penimbal dalam fungsi handle_request(), yang berlaku disebabkan pengiraan saiz data yang salah dalam paket rangkaian. Khususnya, panjang data yang disulitkan ditentukan dalam makro CRYPTO_SIZE yang ditakrifkan sebagai "1 + CRYPTO_PUBLIC_KEY_SIZE * 2 + CRYPTO_NONCE_SIZE", yang kemudiannya digunakan dalam operasi penolakan "panjang - CRYPTO_SIZE". Oleh kerana kekurangan kurungan dalam makro, bukannya menolak jumlah semua nilai, tolak 1 dan tambah bahagian yang tinggal. Sebagai contoh, bukannya "panjang - (1 + 32 * 2 + 24)", saiz penimbal dikira sebagai "panjang - 1 + 32 * 2 + 24", yang membawa kepada menimpa data pada tindanan yang berada di luar penimbal sempadan.

Sumber: opennet.ru

Tambah komen