Vulnerabilități în nucleul Linux care permit creșterea privilegiilor prin nf_tables și ksmbd.

În Netfilter, subsistemul kernel-ului Linux utilizat pentru filtrarea și modificarea pachetelor de rețea, a fost descoperită o vulnerabilitate (CVE-2024-1086) care permite unui utilizator local să execute cod la nivel de kernel și să își crească privilegii în sistem. Problema este cauzată de o eliberare dublă de memorie (double-free) în modulul nf_tables, care asigură funcționarea filtrului de pachete nftables. Cercetătorul în securitate care a descoperit vulnerabilitatea a dezvoltat și publicat un prototip de exploat.

Funcționarea exploatului a fost demonstrată în versiunile actuale de Debian și Ubuntu cu kernel-uri Linux 5.14 — 6.6, precum și într-un mediu cu kernel KernelCTF (Capture the Flag), care include actualizări suplimentare pentru blocarea metodelor standard de lucru ale exploatelor și care este utilizat de Google în programul de recompense pentru găsirea vulnerabilităților. Gradul de succes al exploatului este evaluat la 99,4%. Într-un articol însoțitor, este detaliat procesul de creare a unui exploat complex de nivel înalt și de ocolire a mecanismelor de apărare și contracarare a exploatelor existente în kernel.

Vulnerabilități în nucleul Linux care permit creșterea privilegiilor prin nf_tables și ksmbd.

Problema este legată de o eroare în funcția nft_verdict_init(), care permite utilizarea valorilor pozitive ca și coduri de eroare pentru respingerea pachetelor (DROP) în hook-uri, ceea ce poate fi folosit pentru a provoca în funcția nf_hook_slow() o a doua operațiune de eliberare de memorie pentru un buffer care deja a fost eliberat. Problema apare atunci când operația NF_DROP este generată cu o eroare și kernel-ul interpretează inițial NF_DROP, dar apoi eliberează buffer-ul și returnează statutul NF_ACCEPT. Această situație duce la faptul că, în ciuda eliberării buffer-ului asociat pachetului, procesarea sa nu se oprește, ci este transmisă unui alt handler care, la rândul său, a doua oară apelează funcția de eliberare a memoriei.

Vulnerabilitatea se manifestă începând cu versiunea kernel-ului Linux 3.15, dar exploatul funcționează cu kernel-uri începând cu versiunea 5.14. Repararea vulnerabilității a fost propusă în lansarea kernel-ului Linux 6.8-rc1 și, la sfârșitul lunii februarie, a fost transferată în ramurile stabile 5.15.149, 6.1.76 și 6.6.15. În distribuțiile de Linux, se poate urmări corectarea vulnerabilității pe paginile: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

De asemenea, se poate menționa o serie de vulnerabilități în modulul ksmbd, care oferă o implementare încorporată în kernel-ul Linux a unui sistem de fișiere. server bazat pe protocolul SMB: Vulnerabilitatea CVE-2024-26592 permite executarea codului la distanță fără autentificare cu privilegii de kernel pe sistemele cu modulul ksmbd activat. Problema este cauzată de o condiție de rivalitate în codul de procesare a conexiunilor TCP, care apare din lipsa blocărilor adecvate atunci când se lucrează cu obiectul.

Vulnerabilitatea CVE-2023-52440 permite, de asemenea, executarea codului la distanță cu privilegii de kernel, dar este cauzată de un overflow de buffer în procesarea cheilor de sesiune incorecte din lipsa unei verificări corespunzătoare a dimensiunii datelor primite de la utilizator înainte de a fi copiate în bufferul de dimensiune fixă.

Vulnerabilitățile (1, 2, 3) CVE-2024-26594, CVE-2023-52442 și CVE-2023-52441 în ksmbd permit determinarea conținutului memoriei kernel-ului la distanță fără autentificare. Vulnerabilitatea CVE-2024-26594 este cauzată de o verificare incorectă a datelor la procesarea token-urilor SMB2 Mech primite, ceea ce duce la returnarea datelor dincolo de buffer. Vulnerabilitatea CVE-2023-52442 este cauzată de lipsa unei verificări corespunzătoare a datelor de intrare în procesarea cererilor legate în lanț (chained). Vulnerabilitatea CVE-2023-52441 este cauzată de lipsa unei verificări necesare a datelor de intrare în procesarea cererilor de negociere a conexiunii SMB2.

Vulnerabilitățile CVE-2024-26594 și CVE-2024-26592 au fost remediate în kernelul 6.8 și în actualizările corective ale versiunilor stabile anterioare 6.1.75, 6.6.14, 6.7.2. Celelalte vulnerabilități au fost remediate în kernelul 6.5 și în actualizările 5.15.145, 6.1.53, 6.4.16.

În concluzie, merită menționată activarea noului echipe de dezvoltatori ai nucleului Linux, creată pentru a analiza existența vulnerabilităților și a evalua legătura dintre corecțiile introduse în nucleu și problemele de securitate. În februarie, dezvoltatorii nucleului au înființat un serviciu CNA (Autoritatea de Numire a CVE-urilor), care a primit autoritatea de a atribui în mod autonom identificatori CVE vulnerabilităților. Până atunci, atribuirea CVE-urilor și analiza legăturii corecțiilor cu posibilele vulnerabilități era responsabilitatea dezvoltatorilor de distribuții, iar în nucleu, vulnerabilitățile potențiale nu erau distinct desemnate și apăreau la nivel egal cu corecțiile obișnuite. Rezultatele activității noului serviciu au depășit orice așteptări - zilnic, în nucleu sunt semnalate până la câteva zeci de noi vulnerabilități care anterior nu erau marcate ca probleme de securitate. De exemplu, pe 26 martie, noi identificatori CVE au fost atribuiți 14 vulnerabilităților care nu au fost considerate anterior probleme de securitate, iar pe 25 martie - 41 de vulnerabilități.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster