Sebezhetőség a Linux kernel iSCSI alrendszerében, amely lehetővé teszi a jogosultságok kiterjesztését

Sebezhetőséget (CVE-2021-27365) azonosítottak a Linux kernel iSCSI alrendszer kódjában, amely lehetővé teheti a jogosulatlan helyi felhasználók számára, hogy kódot hajtsanak végre a kernel szintjén, és root jogosultságokat szerezzenek a rendszeren. Az exploit működő prototípusa tesztelhető. A sérülékenységet a Linux kernel 5.11.4, 5.10.21, 5.4.103, 4.19.179, 4.14.224, 4.9.260 és 4.4.260 frissítéseiben javították. A kernelcsomag frissítései Debian, Ubuntu, SUSE/openSUSE, Arch Linux és Fedora disztribúciókon érhetők el. Az RHEL javítások még nem jelentek meg.

A problémát a libiscsi modulból származó iscsi_host_get_param() függvény hibája okozza, amelyet még 2006-ban vezettek be az iSCSI alrendszer fejlesztése során. A megfelelő méretellenőrzések hiánya miatt egyes iSCSI karakterlánc-attribútumok, például a gazdagépnév vagy a felhasználónév meghaladhatják a PAGE_SIZE (4 KB) értéket. A sérülékenységet kihasználhatja egy jogosulatlan felhasználó, aki olyan Netlink-üzeneteket küld, amelyek az iSCSI-attribútumokat PAGE_SIZE-nél nagyobb értékekre állítják be. Amikor ezeket az attribútumokat sysfs-en vagy seqfs-en keresztül olvassa be, akkor olyan kódot hívunk meg, amely átadja az attribútumokat a sprintf függvénynek, és átmásolja azokat egy PAGE_SIZE méretű pufferbe.

A disztribúciókban a sérülékenység kihasználása az scsi_transport_iscsi kernelmodul automatikus betöltésének támogatásától függ, amikor egy NETLINK_ISCSI socketet próbálnak létrehozni. Azokon a disztribúciókon, ahol ez a modul automatikusan betöltődik, az iSCSI-funkciók használatától függetlenül indítható támadás. Ugyanakkor az exploit sikeres alkalmazásához legalább egy iSCSI szállítás regisztrációja is szükséges. Használhatja viszont az ib_iser kernel modult, amely automatikusan betöltődik, amikor egy nem jogosult felhasználó megpróbál létrehozni egy NETLINK_RDMA socketet, az átvitel regisztrálásához.

Az exploit alkalmazásához szükséges modulok automatikus betöltését a CentOS 8, RHEL 8 és Fedora támogatja, ha az rdma-core csomag telepítve van a rendszerre, ami egyes népszerű csomagok függősége, és alapértelmezés szerint telepítve van a munkaállomások konfigurációiban, szerverrendszerek grafikus felhasználói felülettel és gazdakörnyezet virtualizációval. Ugyanakkor az rdma-core nem kerül telepítésre, ha csak konzol módban működő szerver buildet használ, és ha minimális telepítőkészletet telepít. Például a csomag benne van a Fedora 31 Workstation alapterjesztésében, de a Fedora 31 Server nem tartalmazza. A Debian és az Ubuntu kevésbé érintett, mivel az rdma-core csomag csak akkor tölti be a támadáshoz szükséges kernelmodulokat, ha van RDMA hardver.

Sebezhetőség a Linux kernel iSCSI alrendszerében, amely lehetővé teszi a jogosultságok kiterjesztését

Biztonsági megoldásként letilthatja a libiscsi modul automatikus betöltését: echo "install libiscsi /bin/true" >> /etc/modprobe.d/disable-libiscsi.conf

Ezenkívül két további kevésbé veszélyes sebezhetőséget javítottak ki az iSCSI alrendszerben, amelyek adatszivárgáshoz vezethetnek a kernelből: CVE-2021-27363 (az iSCSI szállítási leíró információinak kiszivárgása sysfs-en keresztül) és CVE-2021-27364 (a határokon kívüli pufferterület) . Ezek a sérülékenységek a szükséges jogosultságok nélkül használhatók fel a netlink socketen keresztüli kommunikációra az iSCSI alrendszerrel. Például egy jogosulatlan felhasználó csatlakozhat az iSCSI-hez, és "end a session" parancsot küldhet a munkamenet leállítására.

Forrás: opennet.ru

Hozzászólás