Vulnerabilitate în modulul ksmbd al nucleului Linux, care permite executarea de cod de la distanță

În modulul ksmbd, care include o implementare a serverului de fișiere bazat pe protocolul SMB în nucleul Linux, a fost descoperită o vulnerabilitate critică care permite executarea de cod rău intenționat cu permisiuni de nucleu de la distanță. Atacul poate fi realizat fără autentificare, fiind suficient ca modulul ksmbd să fie activat pe sistem. Problema este prezentă începând cu nucleul 5.15, lansat în noiembrie 2021, și a fost rezolvată în actualizările 5.15.61, 5.18.18 și 5.19.2, publicate în august 2022. Deoarece identificatorul CVE nu a fost încă atribuit, nu există informații precise despre rezolvarea problemei în distribuțiile disponibile.

Detalii despre exploatarea vulnerabilității nu sunt deocamdată dezvăluite, se știe doar că vulnerabilitatea este cauzată de accesul la o zonă de memorie deja eliberată (Use-After-Free) din cauza lipsei verificării existenței obiectului înainte de a efectua operații cu acesta. Problema este legată de faptul că în funcția smb2_tree_disconnect() a fost eliberată memoria alocată pentru structura ksmbd_tree_connect, însă un pointer a rămas utilizat în procesarea anumitor solicitări externe care conțin comenzi SMB2_TREE_DISCONNECT.

În plus față de vulnerabilitatea menționată, în ksmbd au fost corectate și 4 probleme mai puțin grave:

  • ZDI-22-1688 — executare de cod de la distanță cu permisiuni de nucleu din cauza lipsei unui control al dimensiunii reale a datelor externe înainte de copierea acestora în buffer-ul alocat. Pericolul acestei vulnerabilități este atenuat de faptul că atacul poate fi efectuat doar de un utilizator autentificat.
  • ZDI-22-1691 — scurgere de informații din memoria nucleului de la distanță din cauza verificării incorecte a parametrilor de intrare în handler-ul comenzii SMB2_WRITE (atacul poate fi realizat doar de un utilizator autentificat).
  • ZDI-22-1687 — atac de tip denial of service de la distanță prin epuizarea memoriei disponibile în sistem din cauza eliberării incorecte a resurselor în handler-ul comenzii SMB2_NEGOTIATE (atacul poate fi realizat fără autentificare).
  • ZDI-22-1689 — apel de crash al nucleului de la distanță din cauza lipsei unei verificări adecvate a parametrilor comenzii SMB2_TREE_CONNECT, ceea ce duce la citirea din afara buffer-ului (atacul poate fi efectuat doar de un utilizator autentificat).

Suportul pentru funcționarea serverului SMB prin modulul ksmbd este disponibil în pachetul Samba, începând cu versiunea 4.16.0. Spre deosebire de serverul SMB care funcționează în spațiul utilizatorului, ksmbd este mai eficient în termeni de performanță, consum de memorie și integrare cu funcționalitățile avansate ale nucleului. Ksmbd este prezentat ca o extensie de înaltă performanță și gata de utilizare pentru dispozitive încorporate, care poate fi integrată cu instrumentele și bibliotecile Samba, dacă este necesar. Autorii codului ksmbd sunt Namjae Jeon de la Samsung și Hyunchul Lee de la LG, iar întreținerea acesteia în cadrul nucleului este realizată de Steve French de la Microsoft, mentenanța subsistemului CIFS/SMB2/SMB3 în nucleul Linux și un participant de lungă durată la echipa de dezvoltare Samba, care a adus contribuții semnificative pentru implementarea suportului pentru protocoalele SMB/CIFS în Samba și Linux.

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