La vulnerabilità iSCSI del kernel Linux consente l'elevazione dei privilegi

recentemente informazioni importanti su l'identificazione di una vulnerabilità (elencato come CVE-2021-27365) nel codice del sottosistema iSCSI Kernel Linux che consente a un utente locale senza privilegi di eseguire codice a livello di kernel e ottenere privilegi di root sul sistema.

Il problema è causato da un bug nel modulo iscsi_host_get_param () di libiscsi, introdotto nel 2006 durante lo sviluppo del sottosistema iSCSI. A causa della mancanza di controlli di dimensionamento adeguati, alcuni attributi di stringa iSCSI, come nome host o nome utente, potrebbero superare il valore PAGE_SIZE (4KB).

La vulnerabilità potrebbe essere sfruttata inviando messaggi Netlink da un utente senza privilegi che imposta gli attributi iSCSI su valori maggiori di PAGE_SIZE. Quando si leggono i dati degli attributi tramite sysfs o seqfs, il codice viene chiamato per passare gli attributi a sprintf in modo che vengano copiati in un buffer di dimensioni PAGE_SIZE.

Il particolare sottosistema in questione è il trasporto dati SCSI (Small Computer System Interface), che è uno standard per il trasferimento di dati realizzato per collegare computer con periferiche, originariamente tramite un cavo fisico, come i dischi rigidi. SCSI è uno standard venerabile pubblicato originariamente nel 1986 ed era il gold standard per le configurazioni dei server, e iSCSI è fondamentalmente SCSI su TCP. SCSI è ancora utilizzato oggi, soprattutto in determinate situazioni di archiviazione, ma come fa a diventare una superficie di attacco su un sistema Linux predefinito?

Sfruttare la vulnerabilità nelle distribuzioni dipende dal supporto per il caricamento automatico dei moduli del kernel scsi_transport_iscsi durante il tentativo di creare un socket NETLINK_ISCSI.

Nelle distribuzioni in cui questo modulo viene caricato automaticamente, l'attacco può essere eseguito indipendentemente dall'uso della funzionalità iSCSI. Allo stesso tempo, per il corretto utilizzo dell'exploit, è inoltre richiesta la registrazione di almeno un trasporto iSCSI. A sua volta, per registrare un trasporto, è possibile utilizzare il modulo del kernel ib_iser, che viene caricato automaticamente quando un utente senza privilegi tenta di creare un socket NETLINK_RDMA.

Caricamento automatico dei moduli necessari per utilizzare l'exploit supporta CentOS 8, RHEL 8 e Fedora installando il pacchetto rdma-core sul sistema, che è una dipendenza per alcuni pacchetti popolari ed è installato per impostazione predefinita nelle configurazioni per workstation, sistemi server con GUI e virtualizzazione degli ambienti host.

Allo stesso tempo, rdma-core non viene installato quando si utilizza una build del server che funziona solo in modalità console e quando si installa un'immagine di installazione minima. Ad esempio, il pacchetto è incluso nella distribuzione base Fedora 31 Workstation, ma non è incluso in Fedora 31 Server.

Debian e Ubuntu sono meno suscettibili al problemapoiché il pacchetto rdma-core carica solo i moduli del kernel necessari per un attacco se è disponibile l'hardware RDMA. Tuttavia, il pacchetto Ubuntu lato server include il pacchetto open-iscsi, che include il file /lib/modules-load.d/open-iscsi.conf per garantire che i moduli iSCSI vengano caricati automaticamente a ogni avvio.

È disponibile un prototipo funzionante dell'exploit prova sul link sottostante.

La vulnerabilità è stata risolta negli aggiornamenti del kernel Linux 5.11.4, 5.10.21, 5.4.103, 4.19.179, 4.14.224, 4.9.260 e 4.4.260. Gli aggiornamenti dei pacchetti del kernel sono disponibili sulle distribuzioni Debian (oldstable), Ubuntu, SUSE / openSUSE, Arch Linux e Fedora, mentre nessuna correzione è stata ancora rilasciata per RHEL.

Inoltre, nel sottosistema iSCSI sono state risolte due vulnerabilità meno pericolose che può portare alla perdita di dati dal kernel: CVE-2021-27363 (informazioni trapelate sul descrittore di trasporto iSCSI tramite sysfs) e CVE-2021-27364 (lettura da una regione al di fuori dei limiti del buffer).

Queste vulnerabilità possono essere sfruttate per comunicare su un socket di collegamento di rete con il sottosistema iSCSI senza i privilegi necessari. Ad esempio, un utente senza privilegi può connettersi a iSCSI e inviare un comando di disconnessione.

fonte: https://blog.grimm-co.com


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.