Hanno trovato una vulnerabilità VFS in Linux che consente l'escalation dei privilegi

Pochi giorni fa è stata rilasciata la notizia che la vulnerabilità è stata identificata (già catalogato sotto CVE-2022-0185) en l'API del contesto del file system fornito dal kernel linux che potrebbe consentire a un utente locale di ottenere i privilegi di root sul sistema.

Si è detto che il problema è che un utente senza privilegi può ottenere tali autorizzazioni in un contenitore isolato se il supporto per gli spazi dei nomi utente è abilitato sul sistema.

Ad esempio, gli spazi dei nomi utente sono abilitati per impostazione predefinita su Ubuntu e Fedora, ma non sono abilitati su Debian e RHEL (a meno che non vengano utilizzate piattaforme di isolamento dei container). Oltre all'escalation dei privilegi, la vulnerabilità può essere utilizzata anche per uscire da un contenitore isolato se il contenitore dispone dell'autorizzazione CAP_SYS_ADMIN.

Vulnerabilità esiste nella funzione legacy_parse_param() in VFS ed è dovuto alla mancanza di un'adeguata convalida della dimensione massima dei parametri forniti sui file system che non supportano l'API del contesto del file system.

Di recente, diversi amici del mio team CTF Crusaders of Rust e io abbiamo riscontrato un overflow dell'heap del kernel Linux di 0 giorni. Abbiamo trovato il bug sfocando con syzkaller e lo abbiamo rapidamente sviluppato in un exploit LPE di Ubuntu. L'abbiamo quindi riscritto per sfuggire e eseguire il root dell'infrastruttura CTF di Kubernetes rinforzata di Google. Questo bug interessa tutte le versioni del kernel dalla 5.1 (la 5.16 è attualmente in corso) ed è stato assegnato CVE-2022-0185. Lo abbiamo già segnalato alla mailing list di distribuzione e sicurezza di Linux e il bug è stato corretto a partire dal rilascio di questo articolo.

Il passaggio di un parametro troppo grande può causare un overflow della variabile intera utilizzata per calcolare la dimensione dei dati in scrittura; il codice ha un controllo di overflow del buffer "if (len > PAGE_SIZE - 2 - size)", che non funziona se il valore della dimensione è maggiore di 4094 a causa dell'overflow del numero intero attraverso il limite inferiore (overflow del numero intero, quando converte 4096 – 2 – 4095 in unsigned int, ottiene 2147483648).

Questo bug consente, quando si accede a un'immagine FS appositamente predisposta, causare un overflow del buffer e sovrascrivere i dati del kernel seguendo l'area di memoria allocata. Per sfruttare la vulnerabilità, sono necessari i diritti CAP_SYS_ADMIN, ovvero l'autorità di amministratore.

A partire dal 2022, i nostri compagni di squadra hanno deciso di trovare un giorno 0 nel 2022. Non sapevamo esattamente come iniziare, ma poiché il nostro team aveva un alto grado di familiarità con le vulnerabilità del kernel Linux, abbiamo deciso di acquistare solo alcuni server dedicati. ed esegui il syzkaller fuzzer di Google. Il 6 gennaio alle 22:30 PST, chop0 ha ricevuto il seguente rapporto di errore KASAN in legacy_parse_param: slab-out-of-bounds Scrivi legacy_parse_param. Sembra che syzbot abbia riscontrato questo problema solo 6 giorni prima durante l'offuscamento di Android, ma il problema non è stato risolto e abbiamo pensato ingenuamente che nessun altro se ne fosse accorto.

Infine, vale la pena ricordare che il problema si manifesta sin dalla versione del kernel Linux 5.1 ed è stato risolto negli aggiornamenti rilasciati pochi giorni fa nelle versioni 5.16.2, 5.15.16, 5.10.93, 5.4.173.

a parte quello gli aggiornamenti del pacchetto di vulnerabilità sono già stati rilasciati per RHELDebianfedora e Ubuntu. Mentre la soluzione non è ancora disponibile su Arch LinuxGentooSUSE y openSUSE.

In questi casi, viene menzionato che come soluzione di sicurezza per i sistemi che non utilizzano l'isolamento del contenitore, è possibile impostare il valore di sysctl "user.max_user_namespaces" su 0:

Il ricercatore che ha identificato il problema ha pubblicato una demo di un exploit que consente di eseguire il codice come root su Ubuntu 20.04 nella configurazione predefinita. È previsto che il codice exploit viene pubblicato su GitHub entro una settimana che le distribuzioni rilasciano un aggiornamento che risolve la vulnerabilità.

Infine se sei interessato a saperne di più, puoi controllare i dettagli nel file seguente link


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.

  1.   galego suddetto

    Un motivo in più per non toccare lo snap con un bastoncino.