V modulu ksmbd, který obsahuje vestavěné funkce jádra Linux V implementaci souborového serveru založeného na protokolu SMB byla identifikována kritická zranitelnost, která umožňuje vzdálené spuštění kódu s oprávněními jádra. Útok lze provést bez autentizace; v systému musí být povolen modul ksmbd. Problém existuje od jádra 5.15, vydaného v listopadu 2021, a byl tiše opraven v aktualizacích 5.15.61, 5.18.18 a 5.19.2, vydaných v srpnu 2022. Vzhledem k tomu, že problému dosud nebyl přiřazen identifikátor CVE, zatím neexistují definitivní informace o tom, zda byl problém v distribucích opraven.
Podrobnosti o zneužití zranitelnosti dosud nebyly zveřejněny, ví se pouze, že zranitelnost je způsobena přístupem do již uvolněné oblasti paměti (Use-After-Free) kvůli chybějící kontrole existence objektu před provedením operací. na to. Problém je způsoben tím, že funkce smb2_tree_disconnect() uvolnila paměť alokovanou pro strukturu ksmbd_tree_connect, ale poté se stále používal ukazatel při zpracování určitých externích požadavků obsahujících příkazy SMB2_TREE_DISCONNECT.
Kromě zmíněné zranitelnosti byly v ksmbd opraveny 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 tomu, že kód pro zpracování atributů souboru nekontroluje skutečnou velikost externích dat před jejich zkopírováním do vyhrazené vyrovnávací paměti. Zranitelnost je zmírněna tím, že útok může provést pouze ověřený uživatel.
- ZDI-22-1691 - vzdálený únik informací z 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í služby způsobené vyčerpáním dostupné paměti v systému v důsledku nesprávného uvolnění prostředků v handleru příkazu SMB2_NEGOTIATE (útok lze provést bez ověření).
- ZDI-22-1689 - Vzdálené zhroucení jádra kvůli nedostatečnému řádnému ověření parametrů příkazu SMB2_TREE_CONNECT, což má za následek čtení z oblasti mimo vyrovnávací paměť (útok může provést pouze ověřený uživatel).
Podpora pro spuštění SMB serveru pomocí modulu ksmbd je v balíčku Samba přítomna od verze 4.16.0. Na rozdíl od uživatelského SMB serveru 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é, integrovatelné rozšíření Samby, které se dle potřeby integruje s nástroji a knihovnami Samby. Kód ksmbd napsali Namjae Jeon ze společnosti Samsung a Hyunchul Lee ze společnosti LG a jeho správcem jádra je Steve French ze společnosti Microsoft, správce subsystémů CIFS/SMB2/SMB3 v jádře. Linux a dlouholetý člen vývojového týmu Samby, který významně přispěl k implementaci podpory protokolu SMB/CIFS v Sambě a Linux.
Zdroj: opennet.ru
