V module ksmbd, ktorý poskytuje integrovanú implementáciu súborového servera na báze protokolu SMB v jadre Linux, bolo zistených 14 zraniteľností, z ktorých štyri umožňujú vzdialené vykonanie kódu s právami jadra. Útok môže byť vykonaný bez autentifikácie, stačí, ak je na systéme aktivovaný modul ksmbd. Problémy sa vyskytujú od jadra 5.15, do ktorého bol prijatý modul ksmbd. Zraniteľnosti boli odstránené v aktualizáciách jadra 6.3.2, 6.2.15, 6.1.28 a 5.15.112. Opravy môžu byť sledované v distribúciách na nasledujúcich stránkach: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Gentoo, Arch.
Zistené problémy:
- CVE-2023-32254, CVE-2023-32250, CVE-2023-32257, CVE-2023-32258 — vzdialené vykonanie kódu s právami jadra z dôvodu nedostatočných blokovacích opatrení pri spracovaní externých požiadaviek obsahujúcich príkazy SMB2_TREE_DISCONNECT, SMB2_SESSION_SETUP, SMB2_LOGOFF a SMB2_CLOSE, čo vedie k zneužiteľnému stavu závodu. Útok môže byť uskutočnený bez prechodu autentifikáciou.
- CVE-2023-32256 — únik obsahu oblastí pamäte jadra z dôvodu stavu závodu pri spracovaní príkazov SMB2_QUERY_INFO a SMB2_LOGOFF. Útok môže byť uskutočnený bez prechodu autentifikáciou.
- CVE-2023-32252, CVE-2023-32248 — vzdialený odmietnutie služby z dôvodu dereferencovania null ukazovateľa pri spracovaní príkazov SMB2_LOGOFF, SMB2_TREE_CONNECT a SMB2_QUERY_INFO. Útok môže byť uskutočnený bez prechodu autentifikáciou.
- CVE-2023-32249 — možnosť zachytiť reláciu s používateľom z dôvodu nedostatočnej izolácie pri spracovaní identifikátora relácie v multikanálovom režime.
- CVE-2023-32247, CVE-2023-32255 — odmietnutie služby z dôvodu úniku pamäte pri spracovaní príkazu SMB2_SESSION_SETUP. Útok môže byť uskutočnený bez prechodu autentifikáciou.
- CVE-2023-2593 — odmietnutie služby z dôvodu vyčerpania dostupnej pamäte, spôsobené chybou, vedúcou k nevydaniu pamäte pri spracovaní nových TCP pripojení. Útok môže byť uskutočnený bez prechodu autentifikáciou.
- CVE-2023-32253 — odmietnutie služby z dôvodu vzniku vzájomnej blokády pri spracovaní príkazu SMB2_SESSION_SETUP. Útok môže byť uskutočnený bez prechodu autentifikáciou.
- CVE-2023-32251 — nedostatok ochrany proti útokom hrubou silou na autentifikačné parametre.
- CVE-2023-32246 — lokálny používateľ systému, ktorý má právo načítať modul ksmbd, môže dosiahnuť vykonanie svojho kódu na úrovni jadra Linux.
Okrem toho bolo zistených ďalších 5 zraniteľností v balíku ksmbd-tools, ktorý obsahuje nástroje na spravu a prácu s ksmbd, pričom sa vykonávajú v používateľskom priestore. Najnebezpečnejšie zraniteľnosti (ZDI-CAN-17822, ZDI-CAN-17770, ZDI-CAN-17820, CVE zatiaľ nebol priradený) umožňujú vzdialenému neoprávnenému útočníkovi vykonať svoj kód s právami root. Tieto zraniteľnosti sú spôsobené absenciou kontroly veľkosti prichádzajúcich externých dát pred ich kopírovaním do vyrovnávacej pamäte v kóde služby WKSSVC a v spracovateľoch opkódov LSARPC_OPNUM_LOOKUP_SID2 a SAMR_OPNUM_QUERY_USER_INFO. Ďalšie dve zraniteľnosti (ZDI-CAN-17823, ZDI-CAN-17821) môžu viesť k odmietnutiu služby na diaľku bez overovania.
Ksmbd sa prezentuje ako vysoko výkonné a pripravene na použitie rozšírenie k Samba pre zabudované zariadenia, pričom je možné ho integrovať s nástrojmi a knižnicami Samba. Podpora prevádzky SMB-servera pomocou modulu ksmbd je súčasťou balíka Samba už od vydania 4.16.0. Na rozdiel od SMB-servera, ktorý pracuje v používateľskom priestore, je ksmbd efektívnejší z hľadiska výkonu, spotreby pamäte a integrácie s pokročilými funkciami jadra. Autorom kódu ksmbd je Namjae Jeon zo spoločnosti Samsung a Hyunchul Lee z LG, pričom údržbu v rámci jadra zabezpečuje Steve French z Microsoftu, ktorý je udržiavateľom subsystému CIFS/SMB2/SMB3 v jadre Linux a dlhoročným členom tímu vývojárov Samba, ktorý významne prispel k implementácii podpory protokolov SMB/CIFS v Samba a Linux.
Dodatočne môžeme spomenúť dve zraniteľnosti v grafickom ovládači vmwgfx, ktorý sa používa na realizáciu 3D akcelerácie v prostrediach VMware. Prvá zraniteľnosť (ZDI-CAN-20292) umožňuje lokálnemu používateľovi zvýšiť svoje privilégia v systéme. Zraniteľnosť je spôsobená absenciou kontroly stavu vyrovnávacej pamäte pred uvoľnením pri spracovaní objektu vmw_buffer_object, čo môže viesť k dvojitému volaniu funkcie free. Druhá zraniteľnosť (ZDI-CAN-20110) vedie k úniku obsahu pamäte jadra kvôli chybám pri organizovaní blokovania objektov GEM.
Zdroj: opennet.ru
