Kerentanan jarak jauh di kernel Linux yang terjadi saat menggunakan protokol TIPC

Kerentanan (CVE-2022-0435) telah diidentifikasi dalam modul kernel Linux yang memastikan pengoperasian protokol jaringan TIPC (Transparent Inter-process Communication), yang berpotensi memungkinkan kode dieksekusi pada tingkat kernel dengan mengirimkan jaringan yang dirancang khusus paket. Masalah ini hanya mempengaruhi sistem dengan modul kernel tipc.ko dimuat dan tumpukan TIPC dikonfigurasi, yang biasanya digunakan dalam cluster dan tidak diaktifkan secara default pada distribusi Linux non-khusus.

Perlu dicatat bahwa ketika membangun kernel dalam mode "CONFIG_FORTIFY_SRC=y" (digunakan dalam RHEL), yang menambahkan pemeriksaan batas tambahan ke fungsi memcpy(), operasi dibatasi pada penghentian darurat (kernel panik). Jika dijalankan tanpa pemeriksaan tambahan dan jika informasi tentang tag canary yang digunakan untuk melindungi tumpukan bocor, masalahnya dapat dieksploitasi untuk eksekusi kode jarak jauh dengan hak kernel. Para peneliti yang mengidentifikasi masalah tersebut mengklaim bahwa teknik eksploitasi itu sepele dan akan terungkap setelah kerentanan dalam distribusi dihilangkan secara luas.

Kerentanan ini disebabkan oleh stack overflow yang terjadi saat memproses paket, nilai bidang dengan jumlah node anggota domain melebihi 64. Untuk menyimpan parameter node dalam modul tipc.ko, array tetap β€œu32 member[64 ]” digunakan, tetapi dalam proses pemrosesan yang ditentukan dalam paket Nomor node tidak memeriksa nilai "member_cnt", yang memungkinkan nilai yang lebih besar dari 64 digunakan untuk penimpaan data yang terkontrol di area memori selanjutnya ke struktur "dom_bef" di tumpukan.

Bug yang menyebabkan kerentanan diperkenalkan pada tanggal 15 Juni 2016 dan disertakan dalam kernel Linux 4.8. Kerentanan telah diatasi dalam rilis kernel Linux 5.16.9, 5.15.23, 5.10.100, 5.4.179, 4.19.229, 4.14.266, dan 4.9.301. Di kernel sebagian besar distribusi, masalahnya masih belum terselesaikan: RHEL, Debian, Ubuntu, SUSE, Fedora, Gentoo, Arch Linux.

Protokol TIPC awalnya dikembangkan oleh Ericsson, dirancang untuk mengatur komunikasi antar-proses dalam sebuah cluster dan diaktifkan terutama pada node cluster. TIPC dapat beroperasi melalui Ethernet atau UDP (port jaringan 6118). Saat bekerja melalui Ethernet, serangan dapat dilakukan dari jaringan lokal, dan saat menggunakan UDP, dari jaringan global jika port tidak tercakup oleh firewall. Serangan juga dapat dilakukan oleh pengguna lokal host yang tidak memiliki hak istimewa. Untuk mengaktifkan TIPC, Anda perlu mengunduh modul kernel tipc.ko dan mengkonfigurasi pengikatan ke antarmuka jaringan menggunakan netlink atau utilitas tipc.

Sumber: opennet.ru

Tambah komentar