Dirty Pipe, una delle vulnerabilità più gravi degli ultimi anni in Linux

Recentemente è stata diffusa in rete la notizia del ritrovamento una nuova vulnerabilità in Linux che è elencato come "High Severity" che interessa tutti i kernel dalla versione 5.8, così come i derivati, incluso Android.

Conosciuto come Dirty Pipe consente di sovrascrivere i dati in file di sola lettura e può portare all'escalation dei privilegi iniettando codice nei processi "root".

Sebbene sia già stato corretto nel kernel Linux principale, il bug potrebbe essere utilizzato come arma sotto forma di exploit di escalation dei privilegi su tutti i dispositivi che eseguono il kernel Linux versione 5.8 o successiva.

Significa anche che anche un gruppo di smartphone Android appena rilasciati, come il Samsung Galaxy S22 e Google Pixel 6, sono vulnerabili, fino a quando ogni dispositivo non riceve la patch del kernel appropriata dal rispettivo OEM.

A proposito di tubo sporco

La vulnerabilità era rivelato dal ricercatore di sicurezza Max Kellerman e catalogato come (CVE-2022-0847), ci sono voluti alcuni mesi per trovare un exploit proof-of-concept.

La vulnerabilità consente a un utente senza privilegi di iniettare e sovrascrivere i dati in file di sola lettura, inclusi i processi SUID in esecuzione come root. Il soprannome colloquiale sembra essere un gioco sul famigerato bug Mucca sporca e un meccanismo Linux chiamato pipelining per il passaggio di messaggi tra processi, poiché quest'ultimo viene utilizzato durante la routine di exploit.

Tutto è iniziato un anno fa con un ticket di supporto relativo a file danneggiati. Un cliente si è lamentato del fatto che non è stato possibile decomprimere i registri di accesso scaricati. E in effetti, c'era un file di registro corrotto su uno dei server di registro; potrebbe non essere compresso, ma gzip ha segnalato un errore CRC. Non riuscivo a spiegare perché fosse corrotto, ma presumevo che il processo di divisione notturna si fosse arrestato in modo anomalo e avesse prodotto un file corrotto. Ho corretto manualmente il CRC del file, chiuso il ticket e presto mi sono dimenticato del problema.

Dopo mesi di analisi, il ricercatore alla fine ha scoperto che i file client corrotti erano il risultato di un bug nel kernel di Linux. Ha trovato un modo per sfruttare Dirty Pipe per consentire a chiunque abbia un account, inclusi account "nessuno" meno privilegiati, di aggiungere una chiave SSH all'account utente root.

Per attivare la vulnerabilità, Kellerman ha condiviso la sua prova del concetto, l'attaccante deve avere i permessi di lettura. Inoltre, lo scorrimento non deve trovarsi su un limite di pagina, la scrittura non può oltrepassare un limite di pagina e il file non può essere ridimensionato.

Per sfruttare questa vulnerabilità è necessario: creare una pipe, riempire la pipe con dati arbitrari (impostando il flag PIPE_BUF_FLAG_CAN_MERGE su tutte le voci del ring), svuotare la pipe (lasciando il flag impostato su tutte le istanze della struttura pipe_buffer nella struttura dell'anello pipe_inode_info), unire i dati dal file di destinazione (aperto con O_RDONLY) nella pipe appena prima dell'offset di destinazione e scrivere dati arbitrari nella pipe.

Dirty Pipe interessa anche qualsiasi versione di Android basata su una delle versioni vulnerabili del kernel Linux. Poiché Android è così frammentato, i modelli di dispositivi interessati non possono essere tracciati in modo uniforme.

Secondo Kellerman, Google ha unito la sua correzione di bug con il kernel Android il mese scorso, subito dopo che è stato risolto con il rilascio delle versioni del kernel Linux 5.16.11, 5.15.25 e 5.10.102.

Detto questo, probabilmente dovremo aspettare un po' prima che gli OEM inizino a distribuire gli aggiornamenti Android contenenti la correzione. Pixel 6 di Google, ad esempio, è ancora vulnerabile, ma gli utenti avanzati possono mitigare il difetto installando un kernel aftermarket personalizzato con patch come opzione alternativa.

Gli sviluppatori del kernel Linux hanno rilasciato correzioni (5.16.11, 5.15.25, 5.10.102) il 23 febbraio, mentre Google ha patchato il kernel Android il 24 febbraio. Kellermann e altri esperti hanno confrontato la vulnerabilità a CVE-2016-5195 “Mucca sporca” e hanno detto che è ancora più facile da sfruttare.

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


Lascia un tuo commento

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

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  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.