Hanno scoperto una vulnerabilità nel sottosistema Linux eBPF

Recentemente la notizia lo ha reso noto è stata identificata una vulnerabilità (CVE-2021-29154) nel sottosistema eBPF, che pConsente l'esecuzione di tracciamento, analisi del sottosistema e controllori di controllo del traffico in esecuzione all'interno del kernel Linux in una speciale macchina virtuale JIT che consente a un utente locale di eseguire il codice a livello di kernel.

Secondo i ricercatori che hanno identificato la vulnerabilità, sono stati in grado di sviluppare un prototipo funzionante di un exploit per sistemi x86 a 32 bit e 64 bit che può essere utilizzato da un utente non privilegiato.

Allo stesso tempo, Red Hat osserva che la gravità del problema dipende dalla disponibilità della chiamata di sistema eBPF. per l'utente. Ad esempio, su RHEL e sulla maggior parte delle altre distribuzioni Linux per impostazione predefinita, la vulnerabilità può essere sfruttata quando BPF JIT è abilitato e l'utente dispone dei diritti CAP_SYS_ADMIN.

È stato scoperto un problema nel kernel Linux di cui possono abusare
utenti locali non privilegiati per aumentare i privilegi.

Il problema è come i compilatori BPF JIT calcolano per alcune architetture
Offset di diramazione durante la generazione del codice macchina. Questo può essere abusato
per creare codice macchina anomalo ed eseguirlo in modalità kernel,
dove il flusso di controllo viene dirottato per eseguire codice non sicuro.

Ed è che lo dettagliano il problema è causato da un errore che viene generato durante il calcolo dell'offset delle istruzioni di diramazione durante il compilatore JIT che genera il codice macchina.

In particolare, si dice che quando si generano le istruzioni di branch, non si tiene conto del fatto che lo spostamento può cambiare dopo aver superato la fase di ottimizzazione, quindi questo errore può essere utilizzato per generare codice macchina anomalo ed eseguirlo a livello kernel .

In particolare Questa non è l'unica vulnerabilità nel sottosistema eBPF che è diventata nota negli ultimi anni, poiché alla fine di marzo sono state identificate altre due vulnerabilità nel kernel (CVE-2020-27170, CVE-2020-27171), che forniscono la capacità di utilizzare eBPF per aggirare la protezione contro le vulnerabilità di classe Spectre, che consentono di determinare il contenuto della memoria del kernel e che si traduce nella creazione di condizioni per l'esecuzione speculativa di determinate operazioni.

L'attacco Spectre richiede la presenza di una specifica sequenza di comandi nel codice privilegiato, che porta all'esecuzione speculativa delle istruzioni. In eBPF, sono stati trovati diversi modi generare tali istruzioni mediante manipolazioni con programmi BPF trasmessi per la loro esecuzione.

  • La vulnerabilità CVE-2020-27170 è causata da manipolazioni del puntatore nel controllo BPF, che fa sì che le operazioni speculative accedano a un'area al di fuori del buffer.
  • La vulnerabilità CVE-2020-27171 è correlata a un bug di underflow di interi quando si lavora con i puntatori, che porta all'accesso speculativo ai dati out-of-buffer.

Questi problemi sono già stati risolti nelle versioni kernel 5.11.8, 5.10.25, 5.4.107, 4.19.182 e 4.14.227 e sono stati inclusi negli aggiornamenti del kernel per la maggior parte delle distribuzioni Linux. I ricercatori hanno preparato un prototipo di exploit che consente a un utente senza privilegi di recuperare i dati dalla memoria del kernel.

Per quanto riguarda una delle soluzioni che proposto all'interno di Red Hat è:

Mitigazione:

Questo problema non interessa la maggior parte dei sistemi per impostazione predefinita. Un amministratore dovrebbe aver abilitato il BPF JIT da influenzare.

Può essere disabilitato immediatamente con il comando:

# echo 0 > /proc/sys/net/core/bpf_jit_enable

Oppure può essere disabilitato per tutti i successivi avviamenti del sistema impostando un valore in /etc/sysctl.d/44-bpf -jit-disable

## start file ##
net.core.bpf_jit_enable=0</em>
end file ##

Infine se sei interessato a saperne di più riguardo a questa vulnerabilità, puoi controllare i dettagli in il seguente collegamento.

Vale la pena ricordare che il problema persiste fino alla versione 5.11.12 (inclusa) e non è stato ancora risolto nella maggior parte delle distribuzioni, anche se la correzione è già in atto. disponibile come patch.


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.