Nedávno to zprávy prolomily v modulu ksmbd byla identifikována kritická chyba zabezpečení, který je součástí implementace souborového serveru založeného na protokolu SMB zabudované do linuxového jádra.
Porucha byla zjištěna umožňuje vzdáleně dosáhnout spuštění kódu s právy jádra. Útok lze provést bez autentizace, stačí, aby byl v systému aktivován modul ksmbd.
Momentálně přesné detaily o metodě použité ke zneužití zranitelnosti dosud nebyly odhaleny Je známo, že tato chyba zabezpečení je způsobena pouze přístupem k již uvolněné (Use-After-Free) oblasti paměti kvůli selhání při kontrole existence objektu před provedením operací na něm.
PODROBNOSTI O ZRANITELNOSTI
Tato chyba zabezpečení umožňuje vzdáleným útočníkům spustit libovolný kód na postižených instalacích jádra Linuxu. Ke zneužití této chyby zabezpečení není vyžadováno ověření, ale zranitelné jsou pouze systémy s povoleným ksmbd.Specifická chyba existuje ve zpracování příkazů SMB2_TREE_DISCONNECT. Problém je způsoben nedostatečným ověřením existence objektu před provedením operací s objektem. Útočník může tuto chybu zabezpečení zneužít ke spuštění kódu v kontextu jádra.
Je to zmíněno problém souvisí skutečnost, že ve funkci smb2_tree_disconnect(), alokovaná paměť byla uvolněna pro strukturu ksmbd_tree_connect, ale poté byl při zpracování určitých externích požadavků, které obsahovaly příkazy SMB2_TREE_DISCONNECT, stále používán ukazatel.
Kromě zranitelnosti uvedené v ksmbd, Opraveny jsou také 4 méně nebezpečné problémy:
- ZDI-22-1688 – Vzdálené spuštění kódu s právy jádra kvůli selhání kontroly skutečné velikosti externích dat před jejich zkopírováním do přidělené vyrovnávací paměti v kódu zpracování atributů souboru. Nebezpečí zranitelnosti je zmírněno tím, že útok může provést pouze ověřený uživatel.
- ZDI-22-1691 – Únik informací o vzdálené paměti jádra z důvodu nesprávné kontroly vstupních parametrů v handleru příkazu SMB2_WRITE (útok může provést pouze ověřený uživatel).
- ZDI-22-1687: Vzdálené odmítnutí servisního volání z důvodu vyčerpání dostupné systémové paměti v důsledku nesprávného uvolnění prostředků v obslužné rutině příkazu SMB2_NEGOTIATE (útok lze provést bez ověření).
- ZDI-22-1689 – Vzdálené selhání jádra kvůli nedostatečnému ověření parametrů příkazu SMB2_TREE_CONNECT, což má za následek přečtení oblasti vyrovnávací paměti (útok může provést pouze ověřený uživatel).
Podpora pro provoz SMB serveru pomocí modulu ksmbd je v balíčku Samba od verze 4.16.0.
Na rozdíl od serveru SMB v uživatelském prostoru je ksmbd efektivnější z hlediska výkonu, spotřeby paměti a integrace s pokročilými funkcemi jádra. Ksmbd je propagován jako vysoce výkonné, plug-and-play rozšíření Samba, které se podle potřeby integruje s nástroji a knihovnami Samba.
Kód ksmbd napsali Namjae Jeon ze Samsungu a Hyunchul Lee z LG a udržoval ho Steve French ve společnosti Microsoft, správce subsystémů CIFS/SMB2/SMB3 v jádře Linuxu a dlouholetý člen týmu. Vývojář Samba, který vytvořil významné příspěvky k implementaci podpory protokolu SMB/CIFS v Sambě a Linuxu.
Za zmínku stojí problém se vyskytuje od jádra 5.15, vydáno v listopadu 2021 a v tichosti opraveno v aktualizacích 5.15.61, 5.18.18 a 5.19.2, vygenerovaných v srpnu 2022. Vzhledem k tomu, že problému dosud nebyl přiřazen identifikátor CVE, neexistují zatím žádné přesné informace o tom, jak problém opravit. problém v distribucích.
konečně jestli jsi zájem dozvědět se o tom více, můžete zkontrolovat podrobnosti Na následujícím odkazu.