Sebezhetőség a Linux kernel ksmbd moduljában, amely lehetővé teszi a kód távoli végrehajtását

Kritikus sérülékenységet azonosítottak a ksmbd modulban, amely a Linux kernelbe épített SMB protokollon alapuló fájlszerver megvalósítását tartalmazza, amely lehetővé teszi a kód távoli futtatását kerneljogokkal. A támadás hitelesítés nélkül is végrehajtható, elég, ha a ksmbd modul aktiválva van a rendszeren. A probléma a 5.15 novemberében kiadott 2021-ös kernel óta jelentkezik, és a 5.15.61 augusztusában megjelent 5.18.18, 5.19.2 és 2022 frissítésekben csendben kijavították. Mivel a CVE-azonosító még nincs hozzárendelve a problémához, nincs pontos információ arról, hogyan javítható a probléma a disztribúciókban.

A sérülékenység kihasználásának részleteit egyelőre nem hozták nyilvánosságra, csak annyit tudni, hogy a sérülékenységet egy már felszabadult memóriaterülethez való hozzáférés okozza (Use-After-Free), mivel a műveletek végrehajtása előtt nem ellenőrizték az objektum létezését. Rajta. A probléma abból adódik, hogy az smb2_tree_disconnect() függvény felszabadította a ksmbd_tree_connect struktúra számára lefoglalt memóriát, de ezt követően még mindig volt egy mutató, amelyet az SMB2_TREE_DISCONNECT parancsokat tartalmazó külső kérések feldolgozásakor használtak.

Az említett sérülékenységen kívül 4 kevésbé veszélyes problémát is javítottak a ksmbd-ben:

  • ZDI-22-1688 - távoli kódvégrehajtás kerneljogokkal, mivel a fájlattribútum-feldolgozási kód nem ellenőrzi a külső adatok tényleges méretét, mielőtt egy dedikált pufferbe másolná azokat. A sérülékenységet enyhíti, hogy a támadást csak hitelesített felhasználó hajthatja végre.
  • ZDI-22-1691 - távoli információszivárgás a kernel memóriájából az SMB2_WRITE parancskezelő bemeneti paramétereinek helytelen ellenőrzése miatt (a támadást csak hitelesített felhasználó hajthatja végre).
  • ZDI-22-1687 - Távoli szolgáltatásmegtagadás, amelyet a rendszerben rendelkezésre álló memória kimerülése okoz az SMB2_NEGOTIATE parancskezelőben az erőforrások helytelen felszabadítása miatt (a támadás hitelesítés nélkül is végrehajtható).
  • ZDI-22-1689 - Távoli kernelösszeomlás az SMB2_TREE_CONNECT parancs paramétereinek megfelelő érvényesítésének hiánya miatt, ami a pufferen kívüli területről történő olvasást eredményez (a támadást csak hitelesített felhasználó hajthatja végre).

Az SMB-kiszolgálók ksmbd modul használatával történő futtatásának támogatása a 4.16.0-s kiadás óta megtalálható a Samba-csomagban. A felhasználói területű SMB-kiszolgálókkal ellentétben a ksmbd hatékonyabb a teljesítmény, a memóriafogyasztás és a fejlett kernelfunkciókkal való integráció szempontjából. A Ksmbd-t nagy teljesítményű, beágyazott Samba-bővítményként hirdetik, amely szükség szerint integrálható a Samba-eszközökkel és -könyvtárakkal. A ksmbd kódot Namjae Jeon (Samsung) és Hyunchul Lee (LG) írta, a kernelt pedig Steve French (Microsoft) karbantartja, aki a Linux kernel CIFS/SMB2/SMB3 alrendszereinek karbantartója és a Samba fejlesztőcsapatának régi tagja. , aki jelentősen hozzájárult az SMB/CIFS protokollok támogatásának megvalósításához a Samba és Linux rendszereken.

Forrás: opennet.ru

Hozzászólás