Vulnerabilitatea de la distanță în nucleul Linux care apare atunci când se utilizează protocolul TIPC

A fost identificată o vulnerabilitate (CVE-2022-0435) în modulul de kernel Linux care asigură funcționarea protocolului de rețea TIPC (Transparent Inter-process Communication), permițând potențial executarea codului la nivel de kernel prin trimiterea unei rețele special concepute. pachet. Problema afectează numai sistemele cu modulul kernel tipc.ko încărcat și stiva TIPC configurată, care este de obicei folosită în clustere și nu este activată implicit pe distribuțiile Linux nespecializate.

Se remarcă faptul că atunci când se construiește nucleul în modul „CONFIG_FORTIFY_SRC=y” (utilizat în RHEL), care adaugă verificări suplimentare ale limitelor la funcția memcpy(), operarea este limitată la o oprire de urgență (kernel-ul intră în panică). Dacă se execută fără verificări suplimentare și dacă se scurg informații despre etichetele canary utilizate pentru a proteja stiva, problema poate fi exploatată pentru executarea codului de la distanță cu drepturi de kernel. Cercetătorii care au identificat problema susțin că tehnica de exploatare este banală și va fi dezvăluită după eliminarea pe scară largă a vulnerabilității în distribuții.

Vulnerabilitatea este cauzată de o depășire a stivei care apare la procesarea pachetelor, valoarea câmpului cu numărul de noduri membre ale domeniului în care depășește 64. Pentru a stoca parametrii nodului în modulul tipc.ko, o matrice fixă ​​„u32 members[64”. ]” este utilizat, dar în procesul de procesare a specificat în pachet Numărul nodului nu verifică valoarea „member_cnt”, ceea ce permite ca valori mai mari de 64 să fie utilizate pentru suprascrierea controlată a datelor în zona de memorie următoare la structura „dom_bef” de pe stivă.

Bug-ul care duce la vulnerabilitate a fost introdus pe 15 iunie 2016 și a fost inclus în kernel-ul Linux 4.8. Vulnerabilitatea a fost abordată în versiunile nucleului Linux 5.16.9, 5.15.23, 5.10.100, 5.4.179, 4.19.229, 4.14.266 și 4.9.301. În nucleele majorității distribuțiilor problema rămâne nerezolvată: RHEL, Debian, Ubuntu, SUSE, Fedora, Gentoo, Arch Linux.

Protocolul TIPC a fost dezvoltat inițial de Ericsson, conceput pentru a organiza comunicarea între procese într-un cluster și este activat în principal pe nodurile clusterului. TIPC poate funcționa fie prin Ethernet, fie prin UDP (port de rețea 6118). Când se lucrează prin Ethernet, atacul poate fi efectuat din rețeaua locală, iar când se utilizează UDP, din rețeaua globală dacă portul nu este acoperit de un firewall. Atacul poate fi efectuat și de un utilizator local neprivilegiat al gazdei. Pentru a activa TIPC, trebuie să descărcați modulul tipc.ko kernel și să configurați legarea la interfața de rețea folosind netlink sau utilitarul tipc.

Sursa: opennet.ru

Adauga un comentariu