Kerentanan jauh dalam kernel Linux yang berlaku apabila menggunakan protokol TIPC

Kerentanan (CVE-2022-0435) telah dikenal pasti dalam modul kernel Linux yang memastikan operasi protokol rangkaian TIPC (Transparent Inter-Process Communication), yang berpotensi membenarkan kod dilaksanakan pada peringkat kernel dengan menghantar rangkaian yang direka khas. peket. Isu ini hanya mempengaruhi sistem dengan modul kernel tipc.ko dimuatkan dan tindanan TIPC dikonfigurasikan, yang biasanya digunakan dalam kelompok dan tidak didayakan secara lalai pada pengedaran Linux bukan khusus.

Adalah diperhatikan bahawa apabila membina kernel dalam mod "CONFIG_FORTIFY_SRC=y" (digunakan dalam RHEL), yang menambah semakan sempadan tambahan pada fungsi memcpy(), operasi dihadkan kepada hentian kecemasan (panik kernel). Jika dilaksanakan tanpa semakan tambahan dan jika maklumat tentang tag kenari yang digunakan untuk melindungi timbunan bocor, masalah itu boleh dieksploitasi untuk pelaksanaan kod jauh dengan hak kernel. Para penyelidik yang mengenal pasti masalah mendakwa bahawa teknik eksploitasi adalah remeh dan akan didedahkan selepas penghapusan meluas kelemahan dalam pengedaran.

Kerentanan disebabkan oleh limpahan tindanan yang berlaku semasa memproses paket, nilai medan dengan bilangan nod ahli domain yang melebihi 64. Untuk menyimpan parameter nod dalam modul tipc.ko, tatasusunan tetap β€œahli u32[64] ]” digunakan, tetapi dalam proses memproses yang dinyatakan dalam paket Nombor nod tidak menyemak nilai "member_cnt", yang membolehkan nilai yang lebih besar daripada 64 digunakan untuk menulis ganti terkawal data dalam kawasan memori seterusnya kepada struktur "dom_bef" pada tindanan.

Pepijat yang membawa kepada kerentanan telah diperkenalkan pada 15 Jun 2016 dan dimasukkan ke dalam kernel Linux 4.8. Kerentanan telah ditangani dalam keluaran kernel Linux 5.16.9, 5.15.23, 5.10.100, 5.4.179, 4.19.229, 4.14.266, dan 4.9.301. Dalam kernel kebanyakan pengedaran, masalahnya tetap tidak diperbaiki: RHEL, Debian, Ubuntu, SUSE, Fedora, Gentoo, Arch Linux.

Protokol TIPC pada asalnya dibangunkan oleh Ericsson, direka untuk mengatur komunikasi antara proses dalam kelompok dan diaktifkan terutamanya pada nod kelompok. TIPC boleh beroperasi melalui Ethernet atau UDP (port rangkaian 6118). Apabila bekerja melalui Ethernet, serangan boleh dilakukan dari rangkaian tempatan, dan apabila menggunakan UDP, dari rangkaian global jika port tidak dilindungi oleh tembok api. Serangan juga boleh dilakukan oleh pengguna tempatan hos yang tidak mempunyai hak istimewa. Untuk mengaktifkan TIPC, anda perlu memuat turun modul kernel tipc.ko dan konfigurasikan pengikatan pada antara muka rangkaian menggunakan netlink atau utiliti tipc.

Sumber: opennet.ru

Tambah komen