Linuxi kerneli iSCSI alamsüsteemi koodis avastati haavatavus (CVE-2021-27365), mis võimaldab õigusteta kohalikul kasutajal käivitada koodi kerneli tasemel ja saada süsteemis root-õigused. Testimiseks on saadaval toimiv exploit’i prototüüp. Haavatavus on parandatud Linuxi kerneli versioonide 5.11.4, 5.10.21, 5.4.103, 4.19.179, 4.14.224, 4.9.260 ja 4.4.260 uuendustes. Tuumapaketid koos parandustega on saadaval distributsioonides Debian, Ubuntu, SUSE/openSUSE, Arch Linux ja Fedora. RHEL-i jaoks ei ole parandusi veel avaldatud.
Probleemi põhjustab viga mooduli libiscsi funktsioonis iscsi_host_get_param(), mis lisati juba 2006. aastal iSCSI alamsüsteemi arendamise käigus. Piisavate suurusekontrollide puudumise tõttu võivad mõned iSCSI stringatribuudid, näiteks hostname või username, ületada väärtust PAGE_SIZE (4 KB). Haavatavust saab ära kasutada, kui õigusteta kasutaja saadab Netlinki sõnumeid, mis määravad iSCSI atribuutidele PAGE_SIZE-i ületavad väärtused. Nende atribuutide lugemisel sysfs-i või seqfs-i kaudu käivitatakse kood, mis edastab atribuudid funktsioonile sprintf puhvris kopeerimiseks, mille suurus on võrdne väärtusega PAGE_SIZE.
Haavatavuse ärakasutamise võimalus distributsioonides sõltub sellest, kas kerneli moodul scsi_transport_iscsi laaditakse automaatselt, kui püütakse luua NETLINK_ISCSI soklit. Distributsioonides, kus see moodul laaditakse automaatselt, saab ründe läbi viia sõltumata iSCSI funktsionaalsuse kasutamisest. Seejuures on exploit’i edukaks kasutamiseks lisaks vaja registreerida vähemalt üks iSCSI transport. Transpordi registreerimiseks saab omakorda kasutada kerneli moodulit ib_iser, mis laaditakse automaatselt, kui õigusteta kasutaja püüab luua NETLINK_RDMA soklit.
Exploit'i kasutamiseks vajalike moodulite automaatset laadimist toetatakse CentOS 8-s, RHEL 8-s ja Fedoras, kui süsteemi on paigaldatud pakett rdma-core, mis on mõne populaarse paketi sõltuvus ning paigaldatakse vaikimisi tööjaamade, GUI-ga serverisüsteemide ja virtualiseerimise hostkeskkondade konfiguratsioonides. Seejuures ei paigaldata rdma-core'i serveriversiooni puhul, mis töötab ainult konsoolirežiimis, ega minimaalse paigalduskujutise kasutamisel. Näiteks kuulub pakett Fedora 31 Workstationi baaspaigaldusse, kuid ei sisaldu Fedora 31 Serveris. Debian ja Ubuntu on probleemist vähem mõjutatud, kuna pakett rdma-core laadib ründe jaoks vajalikud kernelimoodulid ainult RDMA-riistvara olemasolul.

Ajutise kaitsemeetmena saab keelata mooduli libiscsi automaatse laadimise: echo «install libiscsi /bin/true» >> /etc/modprobe.d/disable-libiscsi.conf
Lisaks kõrvaldati iSCSI alamsüsteemis veel kaks vähem ohtlikku haavatavust, mis võivad viia andmelekkega kernelist: CVE-2021-27363 (teabe leke iSCSI transpordideskriptori kohta sysfs-i kaudu) ja CVE-2021-27364 (lugemine puhvri piiridest väljaspool asuvast alast). Neid haavatavusi saab kasutada iSCSI alamsüsteemiga suhtlemiseks netlink-sokli kaudu ilma vajalike õigusteta. Näiteks võib õigusteta kasutaja luua ühenduse iSCSI-ga ja saata käsu «end a session», et seanss katkestada.
Allikas: opennet.ru
