A ksmbd modulban, amely egy SMB protokollon alapuló fájlszerver beépített Linux kernel megvalósítását tartalmazza, kritikus sebezhetőséget fedeztek fel, amely lehetővé teszi a távoli kódvégrehajtást kernel szintű jogosultságokkal. A támadás végrehajtható hitelesítés nélkül, amennyiben a ksmbd modul aktiválva van a rendszeren. A probléma a 2021 novemberében kiadott 5.15-ös kerneltől kezdődően jelentkezik, és a 2022 augusztusában kiadott 5.15.61, 5.18.18 és 5.19.2 verziókban, amelyek a problémát csendben orvosolták. Mivel a CVE azonosítója még nem lett hozzárendelve, a disztribúciókban a probléma orvoslásáról pontos információ még nem áll rendelkezésre.
A sebezhetőség kihasználásának részleteit egyelőre nem hozzák nyilvánosságra, csak annyit tudunk, hogy a sebezhetőséget a már felszabadított memória területhez (Use-After-Free) történő hozzáférés okozza, mivel nem végeztek ellenőrzést az objektum létezésével kapcsolatban a műveletek végrehajtása előtt. A probléma összefügg azzal, hogy a smb2_tree_disconnect() függvényben felszabadították a ksmbd_tree_connect struktúra számára foglalt memóriát, de ezt követően még maradt egy mutató, amelyet bizonyos külső SMB2_TREE_DISCONNECT parancsokat fogadó kérések feldolgozásakor használtak.
A fent említett sebezhetőségen kívül a ksmbd-ben négy kevésbé veszélyes problémát is javítottak:
- ZDI-22-1688 — távoli kódvégrehajtás kernel jogosultságokkal a fájl attribútumok kezelésének hiánya miatt, amely nem ellenőrzi a külső adatok tényleges méretét másoltáshoz a lefoglalt pufferszámra. A sebezhetőség veszélyét enyhíti, hogy a támadást csak hitelesített felhasználó hajthatja végre.
- ZDI-22-1691 — távoli informácioleszivárgás a kernel memóriából a SMB2_WRITE parancs feldolgozójában a bemeneti paraméterek helytelen ellenőrzése miatt (a támadás csak hitelesített felhasználó által hajtható végre).
- ZDI-22-1687 — távoli szolgáltatásmegtagadás (DoS) létrehozása a rendszerben lévő memória kimerítése miatt a SMB2_NEGOTIATE parancs feldolgozója által helytelenül felszabadított erőforrások miatt (a támadás hitelesítés nélkül is végrehajtható).
- ZDI-22-1689 — távoli kernel összeomlás okozása a SMB2_TREE_CONNECT parancs paramétereinek megfelelő ellenőrzésének hiánya miatt, ami a pufferen kívüli memóriaolvasáshoz vezet (a támadást csak hitelesített felhasználó hajthatja végre).
Az SMB-szerver működésének támogatása a ksmbd modul segítségével a Samba csomagban található, kezdve a 4.16.0 verzióval. A felhasználói térben működő SMB-szerverrel ellentétben a ksmbd teljesítménye, memóriafogyasztása és a kernel kiterjesztett lehetőségeivel való integráció szempontjából hatékonyabb. A ksmbd egy nagy teljesítményű, beágyazott eszközökre alkalmazható kiegészítő a Sambahoz, amely szükség esetén integrálható a Samba eszközeivel és könyvtáraival. A ksmbd kódját Namjae Jeon a Samsungtól és Hyunchul Lee az LG-től írta, míg a mag kernel támogatását Steve French, a Microsoft CIFS/SMB2/SMB3 alrendszerének karbantartója és a Samba fejlesztői csapatának régóta aktív tagja végzi, aki jelentős hozzájárulást tett az SMB/CIFS protokollok támogatásának megvalósításában a Samba és a Linux számára.
Forrás: opennet.ru
