Mai multe vulnerabilități detectate în Kernel-ul Linux

Recent, a fost lansată vestea că au fost detectate mai multe vulnerabilități clasificate drept periculoase în nucleul Linux și care permit unui utilizator local să-și ridice privilegiile asupra sistemului.

Prima dintre vulnerabilități este CVE-2022-0995 și este prezent în subsistemul de urmărire a evenimentelor „watch_queue” și acest lucru face ca datele să fie scrise într-o zonă a memoriei kernelului în afara bufferului alocat. Atacul poate fi efectuat de orice utilizator fără privilegii și are codul executat cu privilegii de kernel.

Vulnerabilitatea este prezentă în funcția watch_queue_set_size() și este asociată cu o încercare de a șterge toți pointerii din listă, chiar dacă nu li s-a alocat memorie. Problema se manifestă la construirea nucleului cu opțiunea „CONFIG_WATCH_QUEUE=y”, care este folosită de majoritatea distribuțiilor Linux.

Se menționează că vulnerabilitatea s-a rezolvat într-o modificare adăugată la kernel pe 11 martie.

A doua vulnerabilitate care a fost dezvăluită este CVE-2022-27666 ce este prezente în modulele nucleului esp4 și esp6 care implementează transformări Encapsulating Security Payload (ESP) pentru IPsec, care este utilizat atunci când se utilizează atât IPv4, cât și IPv6.

Vulnerabilitate permite unui utilizator local cu privilegii normale să suprascrie obiecte din memoria kernelului și să le ridice privilegiile in sistem. Problema se datorează unei nepotriviri între dimensiunea memoriei alocate și datele efectiv primite, deoarece dimensiunea maximă a mesajului ar putea depăși dimensiunea maximă a memoriei alocate pentru structura skb_page_frag_refill.

Se menționează că vulnerabilitatea a fost remediată în kernel pe 7 martie (fixat la 5.17, 5.16.15 etc.), plus a fost publicat un prototip funcțional dintr-un exploit care permite unui utilizator normal să obțină acces root pe Ubuntu Desktop 21.10 în setările implicite pe GitHub.

Se afirmă că cu modificări minore, exploit-ul va funcționa și pe Fedora și Debian. Trebuie menționat că exploit-ul a fost pregătit inițial pentru competiția pwn2own 2022, dar bug-ul asociat a fost identificat și remediat de dezvoltatorii kernel-ului, așa că s-a decis dezvăluirea detaliilor vulnerabilității.

Alte vulnerabilități care au fost dezvăluite sunt CVE-2022-1015 y CVE-2022-1016 în subsistemul netfilter din modulul nf_tables care alimentează filtrul de pachete nftables. Cercetătorul care a identificat problemele a anunțat pregătirea exploatărilor de lucru pentru ambele vulnerabilități, care sunt planificate să fie lansate la câteva zile după ce distribuțiile lansează actualizările pachetului de kernel.

Prima problemă permite unui utilizator local neprivilegiat să realizeze o scriere în afara limitelor în stivă. O depășire are loc în procesarea expresiilor nftables bine formate care sunt procesate în timpul fazei de validare a indicilor furnizați de un utilizator care are acces la regulile nftables.

Vulnerabilitatea este datorată la faptul că dezvoltatorii au implicat că valoarea „enum nft_registers reg” este de un octet, în timp ce când anumite optimizări sunt activate, compilatorul, conform specificației C89, puteți utiliza o valoare de 32 de biți pentru asta. Datorită acestei ciudatenii, dimensiunea folosită pentru a verifica și a aloca memorie nu corespunde cu dimensiunea reală a datelor din structură, ceea ce duce la întinderea structurii pe pointerii stivei.

Problema poate fi exploatată pentru a executa cod la nivel de kernel, dar un atac reușit necesită acces la nftables.

Acestea pot fi obținute într-un spațiu de nume de rețea separat (spații de nume de rețea) cu drepturi CLONE_NEWUSER sau CLONE_NEWNET (de exemplu, dacă puteți rula un container izolat). Vulnerabilitatea este strâns legată și de optimizările utilizate de compilator, care, de exemplu, sunt activate la compilarea în modul „CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y”. Exploatarea vulnerabilității este posibilă începând cu kernel-ul Linux 5.12.

Apare a doua vulnerabilitate în netfilter la accesare o zonă de memorie deja eliberată (use-after-free) în driverul nft_do_chain și poate provoca o scurgere de zone de memorie kernel neinițializate care pot fi citite prin manipulare 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 kernel-ul Linux 5.13.

Vulnerabilitățile au fost remediate în actualizările corective ale Kernelului lansate recent.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: AB Internet Networks 2008 SL
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.