În Netfilter, un subsistem de kernel LinuxO vulnerabilitate (CVE-2024-1086) a fost descoperită într-un instrument de filtrare și modificare a pachetelor de rețea. Această vulnerabilitate permite unui utilizator local să execute cod kernel și să își escaladeze privilegiile. Problema este cauzată de o dublă eroare de tip „double-free” în modulul nf_tables, care alimentează filtrul de pachete nftables. Cercetătorul în securitate care a descoperit vulnerabilitatea a dezvoltat și publicat un prototip funcțional al exploit-ului.
Funcționarea exploit-ului a fost demonstrată în versiuni recente. Debian и Ubuntu cu nuclei Linux 5.14–6.6, precum și în mediul KernelCTF (Capture the Flag), care include patch-uri suplimentare pentru a bloca metodele tipice de exploatare și este utilizat de Google în programul său de recompense pentru vulnerabilități. Rata de succes a exploatarii este estimată la 99.4%. Articolul însoțitor detaliază procesul de creare a unei exploatari complexe, cu mai multe straturi, și de ocolire a mecanismelor de protecție și atenuare a exploatarilor ale kernelului.

Problema este legată de o eroare în funcția nft_verdict_init(), care permite utilizarea valorilor pozitive ca cod de eroare DROP în hook, care poate fi folosit pentru a apela funcția nf_hook_slow() pentru a reelibera memoria pentru un buffer. care are deja Funcția free() a fost apelată. Problema apare atunci când o operațiune NF_DROP eșuează și nucleul interpretează mai întâi NF_DROP, dar apoi eliberează tamponul și returnează starea NF_ACCEPT. Această situație duce la faptul că, în ciuda eliberării buffer-ului asociat pachetului, procesarea acestuia nu se oprește, ci este transferată unui alt handler, care la rândul său apelează a doua oară funcția de eliberare a memoriei.
Vulnerabilitatea apare începând de la versiunea kernelului Linux 3.15, dar vulnerabilitatea funcționează cu kerneluri începând de la versiunea 5.14. O remediere pentru vulnerabilitate a fost propusă în versiunea kernelului. Linux 6.8-rc1 și a fost portată pe ramurile stabile 5.15.149, 6.1.76 și 6.6.15 la sfârșitul lunii februarie. Puteți urmări remedierea vulnerabilității pe următoarele pagini din distribuții: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.
În plus, este posibil să se observe o serie de vulnerabilități în modulul ksmbd, care oferă un kernel încorporat. Linux implementare fișier Server Pe baza protocolului SMB: Vulnerabilitatea CVE-2024-26592 permite atacatorilor la distanță, neautentificați, să execute cod cu privilegii de kernel pe sisteme cu modulul ksmbd activat. Problema este cauzată de o condiție de concurență în codul de gestionare a conexiunii TCP, care apare din cauza eșecului de a seta blocările adecvate atunci când se lucrează cu un obiect.
Vulnerabilitatea CVE-2023-52440 permite, de asemenea, executarea de la distanță a codului cuiva cu drepturi de kernel, dar este cauzată de o depășire a memoriei tampon la procesarea cheilor de sesiune incorecte din cauza lipsei verificării corespunzătoare a dimensiunii datelor primite de la utilizator înainte de a le copia în un buffer de dimensiune fixă.
Vulnerabilitățile (1, 2, 3) CVE-2024-26594, CVE-2023-52442 și CVE-2023-52441 în ksmbd fac posibilă determinarea de la distanță a conținutului memoriei kernel fără autentificare. Vulnerabilitatea CVE-2024-26594 este cauzată de validarea incorectă a datelor la procesarea jetoanelor SMB2 Mech primite, ceea ce duce la returnarea datelor dintr-o zonă din afara limitei tamponului. Vulnerabilitatea CVE-2023-52442 este cauzată de lipsa validării corecte a intrărilor la procesarea cererilor înlănțuite. Vulnerabilitatea CVE-2023-52441 este cauzată de lipsa validării intrărilor necesare la procesarea cererilor de negociere a conexiunii SMB2.
Vulnerabilitățile CVE-2024-26594 și CVE-2024-26592 sunt remediate în nucleul 6.8 și actualizări corective ale ramurilor stabile anterioare 6.1.75, 6.6.14, 6.7.2. Vulnerabilitățile rămase au fost remediate în nucleul 6.5 și actualizările 5.15.145, 6.1.53, 6.4.16.
În cele din urmă, putem menționa activarea noii echipe de dezvoltare a kernelului. Linux, creat pentru a analiza vulnerabilitățile și a evalua relația dintre patch-urile kernelului și problemele de securitate. În februarie, dezvoltatorii de kernel și-au creat propriul serviciu, CNA (CVE Numbering Authority), care a primit autoritatea de a atribui independent identificatori CVE vulnerabilităților. Anterior, atribuirea CVE-urilor și analiza relațiilor patch-urilor cu potențialele vulnerabilități aparțineau dezvoltatorilor de distribuții, iar potențialele vulnerabilități din kernel nu erau identificate și erau listate alături de patch-urile obișnuite. Rezultatele noului serviciu au depășit toate așteptările - până la câteva zeci de vulnerabilități noi care nu fuseseră etichetate anterior drept probleme de securitate sunt acum identificate zilnic în kernel. De exemplu, pe 26 martie, noi identificatori CVE au fost atribuiți la 14 vulnerabilități care nu erau considerate anterior probleme de securitate, iar pe 25 martie, la 41 de vulnerabilități.
Sursa: opennet.ru
