Chyba zabezpečení v subsystému iSCSI linuxového jádra, která umožňuje eskalaci oprávnění

V kódu subsystému iSCSI linuxového jádra byla identifikována chyba zabezpečení (CVE-2021-27365), která by mohla umožnit nepřivilegovanému místnímu uživateli spouštět kód na úrovni jádra a získat v systému oprávnění root. Pro testování je k dispozici funkční prototyp exploitu. Tato chyba zabezpečení byla opravena v aktualizacích jádra Linuxu 5.11.4, 5.10.21, 5.4.103, 4.19.179, 4.14.224, 4.9.260 a 4.4.260. Aktualizace balíčků jádra jsou dostupné v distribucích Debian, Ubuntu, SUSE/openSUSE, Arch Linux a Fedora. Opravy RHEL ještě nebyly vydány.

Problém je způsoben chybou ve funkci iscsi_host_get_param() z modulu libiscsi, který byl zaveden již v roce 2006 během vývoje subsystému iSCSI. Kvůli nedostatku správných kontrol velikosti mohou některé atributy řetězce iSCSI, jako je název hostitele nebo uživatelské jméno, překročit hodnotu PAGE_SIZE (4 kB). Tuto chybu zabezpečení by mohl zneužít neprivilegovaný uživatel posílající zprávy Netlink, které nastavují atributy iSCSI na hodnoty vyšší než PAGE_SIZE. Když jsou tyto atributy čteny pomocí sysfs nebo seqfs, je volán kód, který předá atributy funkci sprintf, aby byly zkopírovány do vyrovnávací paměti, jejíž velikost je PAGE_SIZE.

Využití této chyby zabezpečení v distribucích závisí na podpoře automatického načítání modulu jádra scsi_transport_iscsi při pokusu o vytvoření soketu NETLINK_ISCSI. Na distribucích, kde se tento modul načítá automaticky, lze útok provést bez ohledu na použití funkce iSCSI. Zároveň je pro úspěšnou aplikaci exploitu navíc vyžadována registrace alespoň jednoho transportu iSCSI. K registraci přenosu můžete zase použít modul jádra ib_iser, který se načte automaticky, když se neprivilegovaný uživatel pokusí vytvořit soket NETLINK_RDMA.

Automatické načítání modulů potřebných k použití exploitu je podporováno v CentOS 8, RHEL 8 a Fedora, když je v systému nainstalován balíček rdma-core, což je závislost některých populárních balíčků a je standardně instalováno v konfiguracích pro pracovní stanice, serverové systémy s GUI a virtualizací hostitelských prostředí. Současně se rdma-core nenainstaluje při použití sestavení serveru, která funguje pouze v režimu konzoly a při instalaci minimálního instalačního obrazu. Například balíček je součástí základní distribuce Fedora 31 Workstation, ale není součástí Fedora 31 Server. Debian a Ubuntu jsou ovlivněny méně, protože balíček rdma-core načítá moduly jádra potřebné pro útok pouze v případě, že je přítomen hardware RDMA.

Chyba zabezpečení v subsystému iSCSI linuxového jádra, která umožňuje eskalaci oprávnění

Jako bezpečnostní řešení můžete zakázat automatické načítání modulu libiscsi: echo "install libiscsi /bin/true" >> /etc/modprobe.d/disable-libiscsi.conf

Kromě toho byly v subsystému iSCSI opraveny další dvě méně nebezpečné chyby zabezpečení, které by mohly vést k úniku dat z jádra: CVE-2021-27363 (únik informací o transportním deskriptoru iSCSI prostřednictvím sysfs) a CVE-2021-27364 (čtení z rezervní oblast mimo hranice) . Tyto chyby zabezpečení lze použít ke komunikaci prostřednictvím soketu netlink se subsystémem iSCSI bez potřebných oprávnění. Neprivilegovaný uživatel se například může připojit k iSCSI a odeslat příkaz „ukončit relaci“ k ukončení relace.

Zdroj: opennet.ru

Přidat komentář