O vulnerabilitate (CVE-2021-27365) a fost descoperită în codul subsistemului iSCSI din nucleul Linux, care permite unui utilizator local fără privilegii să execute cod la nivelul nucleului și să obțină privilegii root în sistem. Un prototip funcțional al exploatului este disponibil pentru testare. Vulnerabilitatea a fost corectată în actualizările nucleului Linux 5.11.4, 5.10.21, 5.4.103, 4.19.179, 4.14.224, 4.9.260 și 4.4.260. Actualizările pachetelor cu nucleul sunt disponibile în distribuțiile Debian, Ubuntu, SUSE/openSUSE, Arch Linux și Fedora. Corecțiile pentru RHEL nu au fost încă publicate.
Problema este cauzată de o eroare în funcția iscsi_host_get_param() din modulul libiscsi, introdusă în 2006 în timpul dezvoltării subsistemului iSCSI. Din cauza lipsei unor verificări adecvate ale dimensiunii, anumite atribute de tip string iSCSI, cum ar fi hostname sau username, pot depăși valoarea PAGE_SIZE (4 KB). Vulnerabilitatea poate fi exploatată prin trimiterea de mesaje Netlink de către un utilizator fără privilegii, stabilind atributele iSCSI la valori care depășesc PAGE_SIZE. În timpul citirii acestor date atribuite prin sysfs sau seqfs, se activează codul care trimite atributele în funcția sprintf pentru a le copia într-un buffer cu dimensiunea PAGE_SIZE.
Exploatarea vulnerabilității în distribuții depinde de suportul pentru încărcarea automată a modulului nucleului scsi_transport_iscsi atunci când se încearcă crearea unui socket NETLINK_ISCSI. În distribuțiile în care acest modul se încarcă automat, atacul poate fi realizat indiferent de utilizarea funcționalității iSCSI. Totuși, pentru aplicarea cu succes a exploatului, este necesară înregistrarea a cel puțin unui transport iSCSI. În acest scop, se poate folosi modulul nucleului ib_iser, care se încarcă automat atunci când un utilizator fără privilegii încearcă să creeze un socket NETLINK_RDMA.
Încărcarea automată a modulelor necesare pentru exploatarea vulnerabilităților este suportată în CentOS 8, RHEL 8 și Fedora, atunci când se instalează pachetul rdma-core, care este o dependență pentru unele pachete populare și este instalat în mod implicit în configurațiile pentru stații de lucru, sisteme server cu GUI și medii gazdă de virtualizare. Totuși, rdma-core nu este instalat atunci când se folosește o versiune server în mod exclusiv în modul consolă, iar la instalarea unei imagini de instalare minime. De exemplu, pachetul este inclus în livrarea de bază Fedora 31 Workstation, dar nu este inclus în Fedora 31 Server. Debian și Ubuntu sunt mai puțin vulnerabile, deoarece pachetul rdma-core încarcă modulele nucleului necesare pentru atac doar în prezența hardware-ului RDMA.

Ca soluție alternativă la protecție, se poate interzice încărcarea automată a modulului libiscsi: echo "install libiscsi /bin/true" >> /etc/modprobe.d/disable-libiscsi.conf
În plus, în subsistemul iSCSI au fost remediate alte două vulnerabilități mai puțin grave, care pot duce la scurgeri de date din nucleu: CVE-2021-27363 (scurgerea informațiilor despre descriptorul de transport iSCSI prin sysfs) și CVE-2021-27364 (citirea dintr-o zonă dincolo de limitele bufferului). Aceste vulnerabilități pot fi folosite pentru a interacționa prin socket-ul netlink cu subsistemul iSCSI fără a avea privilegiile necesare. De exemplu, un utilizator fără privilegiile necesare poate să se conecteze la iSCSI și să trimită comanda "end a session" pentru a închide sesiunea.
Sursa: opennet.ro
