Ei au detectat o vulnerabilitate în ksmbd în Kernel-ul Linux

vulnerabilitate

Dacă sunt exploatate, aceste defecte pot permite atacatorilor să obțină acces neautorizat la informații sensibile sau, în general, pot cauza probleme

Recent au fost lansate informații că a fost descoperită o vulnerabilitate a nucleului Linux cu un scor CVSS de 10 pe serverul SMB, oferind unui utilizator neautentificat capacitatea de a executa cod de la distanță.

Bug-ul găsit permite atacatorilor de la distanță să execute cod arbitrar pe instalațiile afectate. Nu este necesară autentificarea pentru a exploata această vulnerabilitate, dar numai sistemele cu ksmbd activat sunt vulnerabile.

Defectul specific există în procesarea comenzilor SMB2_TREE_DISCONNECT. Problema rezultă din nevalidarea existenței unui obiect înainte de a efectua operațiuni pe acel obiect. Un atacator poate exploata această vulnerabilitate pentru a executa cod în contextul nucleului.

DETALII VULNERABILITATE
Această vulnerabilitate permite atacatorilor de la distanță să execute cod arbitrar pe instalațiile afectate ale kernelului Linux. Nu este necesară autentificarea pentru a exploata această vulnerabilitate, dar numai sistemele cu ksmbd activat sunt vulnerabile.

Defectul specific există în procesarea comenzilor SMB2_TREE_DISCONNECT. Problema este cauzată de lipsa validării existenței unui obiect înainte de a efectua operații asupra obiectului. Un atacator poate exploata această vulnerabilitate pentru a executa cod în contextul nucleului.

Se mentioneaza ca in functie de tipul de solicitare SMB, fiecare thread nou poate decide sa treaca comenzi in spatiul utilizatorului (ksmbd.mountd); în prezent, comenzile DCE/RPC sunt identificate pentru a fi gestionate de spațiul utilizatorului. Pentru a utiliza mai bine kernel-ul Linux, sa decis să tratăm comenzile ca elemente de lucru și să le executăm în manerele de fir ksmbd -io kworker.

Acest lucru permite managerilor să multiplexeze, deoarece nucleul are grijă să pornească firele de lucru suplimentare dacă sarcina crește și invers, dacă sarcina scade, distruge firele de lucru suplimentare.

Când pornește demonul serverului, pornește un fir de execuție (ksmbd/nume interfață) la momentul pornirii și deschide un port dedicat 445 pentru a asculta cererile SMB. De fiecare dată când clienții noi fac o solicitare, thread-ul forker acceptă conexiunea clientului și creează un nou thread pentru un canal de comunicare dedicat între client și server. Acest lucru permite ca cererile SMB (comenzile) de la clienți să fie procesate în paralel și permite clienților noi să stabilească noi conexiuni.

ksmbd a ridicat semnale roșii printre unii utilizatori care au discutat despre fuziunea lor anul trecut. SerNet, o companie germană de calculatoare care oferă propria sa versiune de Samba, a spus într-o postare pe blog că ksmbd a fost minunat, dar părea puțin imatur. În plus, echipa Samba+ de la SerNet a declarat într-o postare pe blog că valoarea adăugării unui server SMB la spațiul kernel poate să nu merite riscul de a „strânge ultimul bit de performanță din lucrurile disponibile”.

Din fericire, dacă nu rulați modulul „experimental” ksmbd al Samsung, așa cum este descris de cercetătorul de securitate Shir Tamari pe Twitter și ați păstrat Samba, sunteți perfect în siguranță. „ksmbd este nou; majoritatea utilizatorilor încă folosesc Samba și nu sunt afectați. Practic, dacă nu rulați servere SMB cu ksmbd, bucurați-vă de weekend”, a scris Tamari pe Twitter.

Conform Inițiativei Zero-Day, care a dezvăluit vulnerabilitatea ksmbd, defectul use-after-free există în procesarea comenzilor SMB2_TREE_DISCONNECT. Potrivit ZDI, problema este cauzată de faptul că ksmbd nu validează existența obiectelor înainte de a efectua operațiuni asupra acestora.

Pentru cei care folosesc ksmbd, există o soluție pe lângă trecerea la Samba: upgrade la versiunea de kernel Linux 5.15.61, lansată în august sau mai târziu. Această actualizare a nucleului rezolvă și alte câteva probleme în ksmbd: o citire în afara limitelor pentru SMB2_TREE_CONNECT, care, conform notei de corecție, ar putea permite solicitărilor invalide de a nu trimite mesaje și o scurgere de memorie în smb2_handle_negotiate care provoacă o eliberare incorectă. memorie.

in sfarsit daca esti interesat să afle mai multe despre asta, puteți verifica detaliile În următorul link.