Trovato una vulnerabilità nel sottosistema tty del kernel Linux

Rilasciati i ricercatori del team di Google Project Zero di recente attraverso un post sul blog un nuovo metodo per sfruttare le vulnerabilità (CVE-2020-29661) nell'implementazione del gestore ioctl TIOCSPGRP del Sottosistema tty del kernel Linux, nonché meccanismi di protezione dettagliati che potrebbero bloccare queste vulnerabilità.

È menzionato nel post che il problema è causato da un errore nelle impostazioni di blocco, portando a una race condition nel codice di /tty/tty_jobctrl.c, che è stato utilizzato per creare le condizioni per accedere alla memoria dopo il lancio (use-after-free), sfruttato dallo spazio utente attraverso la manipolazione con ioct- chiamando TIOCSPGRP.

Oltre alle informazioni pubblicate, anche è stata eseguita una demo di exploit funzionale per l'escalation dei privilegi in Debian 10 con kernel 4.19.0-13-amd64 e che inoltre non esclude che possa interessare varie distribuzioni, tra le quali ovviamente ci sono quelle basate e derivate da Debian.

Molte delle singole tecniche di sfruttamento e delle opzioni di mitigazione che sto descrivendo qui non sono nuove. Tuttavia, penso che valga la pena scriverli insieme per mostrare come le varie mitigazioni interagiscono con un exploit after-free abbastanza normale.

I frammenti di codice in questo post del blog che sono rilevanti per l'exploit sono presi dalla versione precedente 4.19.160, poiché è quello su cui si basa il kernel Debian di destinazione; alcuni altri frammenti di codice provengono dalla linea principale di Linux.

Allo stesso tempo, nell'articolo pubblicato, l'enfasi non è tanto sulla tecnica di creazione di un exploit funzionale, ma su quali strumenti ci nel kernel per proteggerti contro tali vulnerabilità.

La conclusione è deludente, poiché è stato detto che metodi come la segmentazione della memoria nell'heap e il controllo dell'accesso alla memoria dopo che è stata liberata non vengono applicati nella pratica poiché portano a un degrado delle prestazioni e alla protezione basata su CFI (Control Flow Integrity), che blocca gli exploit nel successivo fasi di un attacco, richiede miglioramenti.

Un tipo speciale di dispositivo terminale sono gli pseudo terminali, che vengono utilizzati quando, ad esempio, si apre un'applicazione terminale in un ambiente grafico o ci si connette a una macchina remota tramite SSH. Mentre altri dispositivi terminali sono collegati a un qualche tipo di hardware, entrambe le estremità di uno pseudo-terminale sono controllate dallo spazio utente e gli pseudo-terminali possono essere creati liberamente dallo spazio utente (senza privilegi).

Ogni volta che viene aperto /dev/ptmx (abbreviazione di "pseudo-terminal multiplexer"), il descrittore di file risultante rappresenta il lato del dispositivo (indicato nella documentazione e nei sorgenti del kernel come "lo pseudo-terminale principale") di un dispositivo. terminale.

 Il corrispondente dispositivo terminale (a cui normalmente si connette una shell) viene creato automaticamente dal kernel sotto /dev/pts/ .

Quando si guarda a cosa potrebbe fare la differenza a lungo termine, l'accento è posto sull'utilizzo di analizzatori statici avanzati o sull'utilizzo di linguaggi sicuri per la memoria come i dialetti Rust e C con annotazioni estese (come Proven C) per creare controlli di stato, blocchi, oggetti e puntatori. I metodi di protezione menzionano anche l'attivazione della modalità panic_on_oops, rendendo le strutture del kernel di sola lettura e limitando l'accesso alle chiamate di sistema tramite meccanismi come seccomp.

L'errore che causa il problema è stato corretto nel kernel Linux il 3 dicembre dello scorso anno. Il problema si manifesta nei kernel precedenti alla versione 5.9.13, ma la maggior parte delle distribuzioni ha risolto il problema negli aggiornamenti dei pacchetti del kernel offerti l'anno scorso.

Viene anche menzionata una vulnerabilità simile (CVE-2020-29660) che è stata riscontrata contemporaneamente nell'implementazione della chiamata ioctl TIOCGSID, ma è stata anche rimossa ovunque.

Infine Se sei interessato a saperne di più, puoi controllare i dettagli nel 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.