Zraniteľnosť v module ksmbd jadra Linuxu, ktorá vám umožňuje vzdialene spúšťať váš kód

V module ksmbd bola identifikovaná kritická zraniteľnosť, ktorá zahŕňa implementáciu súborového servera založeného na protokole SMB zabudovanom do jadra Linuxu, ktorý vám umožňuje vzdialene spúšťať váš kód s právami jadra. Útok je možné vykonať bez autentifikácie, stačí, aby bol v systéme aktivovaný modul ksmbd. Problém sa objavuje od jadra 5.15, vydaného v novembri 2021, a potichu bol opravený v aktualizáciách 5.15.61, 5.18.18 a 5.19.2 vydaných v auguste 2022. Keďže k problému ešte nebol priradený identifikátor CVE, neexistujú presné informácie o tom, ako problém vyriešiť v distribúciách.

Podrobnosti o zneužití zraniteľnosti ešte neboli zverejnené; je známe len to, že zraniteľnosť je spôsobená prístupom do už uvoľnenej oblasti pamäte (Use-After-Free) z dôvodu nedostatočnej kontroly existencie objektu pred vykonaním operácií. na ňom. Problém je spôsobený skutočnosťou, že funkcia smb2_tree_disconnect() uvoľnila pamäť alokovanú pre štruktúru ksmbd_tree_connect, ale potom sa stále používal ukazovateľ pri spracovaní určitých externých požiadaviek obsahujúcich príkazy SMB2_TREE_DISCONNECT.

Okrem spomínanej zraniteľnosti boli v ksmbd opravené aj 4 menej nebezpečné problémy:

  • ZDI-22-1688 - vzdialené spustenie kódu s právami jadra kvôli tomu, že kód spracovania atribútov súboru nekontroluje skutočnú veľkosť externých údajov pred ich skopírovaním do vyhradenej vyrovnávacej pamäte. Zraniteľnosť je zmiernená skutočnosťou, že útok môže vykonať iba overený používateľ.
  • ZDI-22-1691 - vzdialený únik informácií z pamäte jadra v dôsledku nesprávnej kontroly vstupných parametrov v príkazovom rutine SMB2_WRITE (útok môže vykonať iba overený používateľ).
  • ZDI-22-1687 - vzdialené odmietnutie služby spôsobené vyčerpaním dostupnej pamäte v systéme v dôsledku nesprávneho uvoľnenia prostriedkov v príkazovom rutine SMB2_NEGOTIATE (útok je možné vykonať bez autentifikácie).
  • ZDI-22-1689 - Vzdialené zlyhanie jadra z dôvodu nedostatočného overenia parametrov príkazu SMB2_TREE_CONNECT, čo má za následok čítanie z oblasti mimo vyrovnávacej pamäte (útok môže vykonať iba overený používateľ).

Podpora pre spustenie SMB servera pomocou modulu ksmbd je prítomná v balíku Samba od vydania 4.16.0. Na rozdiel od servera SMB v užívateľskom priestore je ksmbd efektívnejší z hľadiska výkonu, spotreby pamäte a integrácie s pokročilými funkciami jadra. Ksmbd je ponúkaný ako vysokovýkonné rozšírenie Samba pripravené na zabudovanie, ktoré sa podľa potreby integruje s nástrojmi a knižnicami Samba. Kód ksmbd napísali Namjae Jeon zo Samsungu a Hyunchul Lee z LG a jadro spravuje Steve French z Microsoftu, správca subsystémov CIFS/SMB2/SMB3 v jadre Linuxu a dlhoročný člen vývojového tímu Samba. , ktorý sa významnou mierou podieľal na implementácii podpory protokolov SMB/CIFS v Sambe a Linuxe.

Zdroj: opennet.ru

Pridať komentár