Az iSCSI alrendszer kódjában felfedeztek egy sebezhetőséget (CVE-2021-27365), amely lehetővé teszi egy nem privilegizált helyi felhasználó számára, hogy kódot hajtson végre a kernel szintjén, és root jogosultságokat szerezzen a rendszerben. A sebezhetőség tesztelésére működő prototípus exploit érhető el. A sebezhetőséget javították 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ésekben. A kernel frissítései elérhetők a Debian, Ubuntu, SUSE/openSUSE, Arch Linux és Fedora disztribúciókban. A RHEL-hez az orvosi javítások még nem kerültek kiadásra.
A probléma az iscsi_host_get_param() függvényben található hiba miatt alakult ki, amely a libiscsi modul részét képezi, és amelyet 2006-ban vezettek be az iSCSI alrendszer fejlesztésekor. A megfelelő méretellenőrzések hiánya miatt egyes iSCSI karakterlánc-attribútumok, mint például a hostname vagy a username, meghaladhatják a PAGE_SIZE (4 KB) értéket. A sebezhetőség kihasználható, ha egy nem privilegizált felhasználó Netlink üzeneteket küld, amelyek az iSCSI attribútumait a PAGE_SIZE-t meghaladó értékekre állítják. Az attribútumok sysfs-en vagy seqfs-en keresztüli olvasásakor olyan kódot hívnak meg, amely az attribútumokat a sprintf függvényhez továbbítja, hogy a PAGE_SIZE-nek megfelelő méretű pufferbe másolja őket.
A sebezhetőség kihasználásának lehetősége a disztribúcióktól függ, amelyek támogatják a scsi_transport_iscsi kernel modul automatikus betöltését a NETLINK_ISCSI socket létrehozásának kísérlete során. Azokban a disztribúciókban, ahol ez a modul automatikusan betöltődik, a támadás függetlenül végrehajtható az iSCSI funkcionalitás használatától. Sikeres exploit alkalmazásához legalább egy iSCSI transport regisztrálása is szükséges. A transport regisztrálásához használható az ib_iser kernel modul, amely automatikusan betöltődik, amikor egy nem privilegizált felhasználó NETLINK_RDMA socket létrehozására próbálkozik.
A szükséges exploitat modulok automatikus betöltése támogatott a CentOS 8, RHEL 8 és Fedora esetében az rdma-core csomag telepítésekor, amely néhány népszerű csomag függősége, és alapértelmezetten telepítve van a GUI-val rendelkező munkaállomások, kiszolgáló rendszerek és a virtualizációs környezetek konfigurációiban. Az rdma-core azonban nem kerül telepítésre, ha a szerver verziót használják, amely kizárólag konzol módban működik, és a minimális telepítési kép telepítésekor. Például a csomag a Fedora 31 Workstation alapellátmányának része, de nem található meg a Fedora 31 Server-ben. A Debian és az Ubuntu kevésbé érintettek, mivel az rdma-core csomag csak RDMA hardver meglétében tölti be a támadáshoz szükséges kernelmodulokat.

Mint védelmi lépés, meg lehet akadályozni a libiscsi modul automatikus betöltését: echo "install libiscsi /bin/true" >> /etc/modprobe.d/disable-libiscsi.conf
Továbbá az iSCSI alrendszerben két további, kevésbé súlyos sebezhetőséget szüntettek meg, amelyek adatszivárgást okozhatnak a kernelből: CVE-2021-27363 (iSCSI szállító leíró adatainak szivárgása a sysfs-en keresztül) és CVE-2021-27364 (olvasás a pufferen kívüli területből). Ezek a sebezhetőségek anélkül is kihasználhatók, hogy szükséges jogosultságokkal rendelkeznénk az iSCSI alrendszerhez való csatlakozáshoz a netlink socketen keresztül. Például egy nem privilégizált felhasználó csatlakozhat az iSCSI-hez, és elküldheti az "end a session" parancsot a session megszakításához.
Forrás: opennet.ru
