Vulnerabilitățile exploatabile în nf_tables, watch_queue și IPsec au fost identificate în nucleul Linux

Au fost identificate mai multe vulnerabilități periculoase în nucleul Linux care permit unui utilizator local să-și mărească privilegiile în sistem. Au fost pregătite prototipuri de lucru ale exploit-urilor pentru toate problemele luate în considerare.

  • O vulnerabilitate (CVE-2022-0995) din subsistemul de urmărire a evenimentelor watch_queue permite ca datele să fie scrise într-un buffer în afara limitelor din memoria kernelului. Atacul poate fi efectuat de orice utilizator neprivilegiat și are ca rezultat codul care rulează cu drepturi de kernel. Vulnerabilitatea există în funcția watch_queue_set_size() și este asociată cu o încercare de a șterge toți pointerii dintr-o listă, chiar dacă memoria nu a fost alocată pentru aceștia. Problema apare la construirea nucleului cu opțiunea „CONFIG_WATCH_QUEUE=y”, care este folosită în majoritatea distribuțiilor Linux.

    Vulnerabilitatea a fost rezolvată într-o modificare a nucleului adăugată pe 11 martie. Puteți urmări publicațiile actualizărilor de pachete în distribuții pe aceste pagini: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Prototipul de exploatare este deja disponibil public și vă permite să obțineți acces root atunci când rulați pe Ubuntu 21.10 cu nucleul 5.13.0-37.

    Vulnerabilitățile exploatabile în nf_tables, watch_queue și IPsec au fost identificate în nucleul Linux

  • Vulnerabilitatea (CVE-2022-27666) în modulele de nucleu esp4 și esp6 cu implementarea transformărilor ESP (Encapsulating Security Payload) pentru IPsec, utilizată la utilizarea IPv4 și IPv6. Vulnerabilitatea permite unui utilizator local cu privilegii normale să suprascrie obiecte din memoria kernelului și să își escaladeze privilegiile pe sistem. Problema este cauzată de o lipsă de reconciliere între dimensiunea memoriei alocată și datele efective primite, având în vedere că dimensiunea maximă a mesajului ar putea depăși dimensiunea maximă a memoriei alocată pentru structura skb_page_frag_refill.

    Vulnerabilitatea a fost remediată în kernel pe 7 martie (remediată în 5.17, 5.16.15 etc.). Puteți urmări publicațiile actualizărilor de pachete în distribuții pe aceste pagini: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Un prototip funcțional al exploit-ului, care permite unui utilizator obișnuit să obțină acces root la Ubuntu Desktop 21.10 în configurația implicită, a fost deja postat pe GitHub. Se pretinde că, cu modificări minore, exploit-ul va funcționa și pe Fedora și Debian. Este de remarcat faptul că exploit-ul a fost pregătit inițial pentru competiția pwn2own 2022, dar dezvoltatorii de kernel au identificat și corectat un bug asociat cu acesta, așa că s-a decis să dezvăluie detaliile vulnerabilității.

  • Două vulnerabilități (CVE-2022-1015, CVE-2022-1016) în subsistemul netfilter din modulul nf_tables, care asigură funcționarea filtrului de pachete nftables. Prima problemă permite unui utilizator local neprivilegiat să realizeze o scriere în afara limitelor într-un buffer alocat pe stivă. O depășire are loc la procesarea expresiilor nftables care sunt formatate într-un anumit mod și sunt procesate în timpul fazei de verificare a indecșilor specificati de un utilizator care are acces la regulile nftables.

    Vulnerabilitatea este cauzată de faptul că dezvoltatorii au sugerat că valoarea „enum nft_registers reg” era de un singur octet, când atunci când anumite optimizări erau activate, compilatorul, conform specificației C89, putea folosi o valoare de 32 de biți pentru acesta. . Datorită acestei caracteristici, dimensiunea utilizată la verificarea și alocarea memoriei nu corespunde cu dimensiunea reală a datelor din structură, ceea ce duce la suprapunerea cozii structurii cu pointerii de pe stivă.

    Problema poate fi exploatată pentru a executa cod la nivel de kernel, dar un atac de succes necesită acces la nftables, care poate fi obținut într-un spațiu de nume de rețea separat cu drepturi CLONE_NEWUSER sau CLONE_NEWNET (de exemplu, dacă puteți rula un container izolat). Vulnerabilitatea este, de asemenea, strâns legată de optimizările utilizate de compilator, care, de exemplu, sunt activate la construirea în modul „CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y”. Exploatarea vulnerabilității este posibilă începând cu nucleul Linux 5.12.

    A doua vulnerabilitate din netfilter este cauzată de accesarea unei zone de memorie deja eliberată (use-after-free) în handler-ul nft_do_chain și poate duce la o scurgere de zone neinițializate ale memoriei kernel, care pot fi citite prin manipulări cu expresii nftables și utilizate, de exemplu, pentru a determina adresele pointerului în timpul exploatărilor de dezvoltare pentru alte vulnerabilități. Exploatarea vulnerabilității este posibilă începând cu kernelul Linux 5.13.

    Vulnerabilitățile sunt abordate în patch-urile de kernel de astăzi 5.17.1, 5.16.18, 5.15.32, 5.10.109, 5.4.188, 4.19.237, 4.14.274 și 4.9.309. Puteți urmări publicațiile actualizărilor de pachete în distribuții pe aceste pagini: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Cercetătorul care a identificat problemele a anunțat pregătirea exploit-urilor de lucru pentru ambele vulnerabilități, care sunt planificate să fie publicate în câteva zile, după ce distribuțiile lansează actualizări la pachetele kernelului.

Sursa: opennet.ru

Adauga un comentariu