I ricercatori di Cisco Talos rilasciati Pochi giorni fa una vulnerabilità nel kernel Linux che può essere sfruttata per rubare dati e servono anche come mezzo per aumentare i privilegi e compromettere il sistema.
Vulnerabilità descritto come una "vulnerabilità da divulgazione di informazioni" che potrebbe consentire a un utente malintenzionato di vedere la memoria dello stack del kernel. "
CVE-2020-28588 è la vulnerabilità che scoperto nelle funzionalità proc / pid / syscall dei dispositivi ARM 32 bit che eseguono il sistema operativo. Secondo Cisco Talos, il problema è stato scoperto per la prima volta su un dispositivo che esegue Azure Sphere.
Esiste una vulnerabilità legata alla divulgazione di informazioni nella funzionalità / proc / pid / syscall di Linux Kernel 5.1 Stable e 5.4.66. Più specificamente, questo problema è stato introdotto nella v5.1-rc4 (commit 631b7abacd02b88f4b0795c08b54ad4fc3e7c7c0) ed è ancora presente nella v5.10-rc4, quindi è probabile che tutte le versioni intermedie siano interessate. Un utente malintenzionato può leggere / proc / pid / syscall per attivare questa vulnerabilità, facendo perdere al kernel il contenuto della memoria.
Proc è uno speciale pseudo-filesystem su sistemi operativi simili a Unix che utilizzato per accedere dinamicamente ai dati di processo trovato nel kernel. Presenta le informazioni di processo e altre informazioni di sistema in una struttura gerarchica simile a un file.
Ad esempio, contiene sottodirectory / proc / [pid], ognuna delle quali contiene file e sottodirectory che espongono informazioni su processi specifici, leggibili utilizzando l'ID di processo corrispondente. Nel caso del file "syscall", si tratta di un file del sistema operativo Linux legittimo che contiene i log delle chiamate di sistema utilizzate dal kernel.
Per l'azienda, lGli hacker potrebbero sfruttare la falla e accedere al sistema operativo e al file syscall attraverso un sistema utilizzato per interagire tra le strutture dati del kernel, Proc. La voce procfs di syscall potrebbe essere sfruttata se gli hacker emettessero comandi per generare 24 byte di memoria heap non inizializzata, portando a un bypass della randomizzazione del layout dello spazio degli indirizzi del kernel (KASLR).
Guardando questa funzione specifica, tutto sembra a posto, ma vale la pena notare che il file
args
il parametro passato proviene daproc_pid_syscall
funzione e come tale è effettivamente di tipo__u64 args
. In un sistema ARM, la definizione della funzione converte la dimensione del filearg
array in elementi a quattro byte da otto byte (daunsigned long
in ARM è di 4 byte), il che si traduce inmemcpy
viene copiato in 20 byte (più 4 perargs[0]
).Allo stesso modo, per i386, dove
unsigned long
sono solo 4 byteargs
vengono scritti i primi 24 byte dell'argomento, lasciando intatti i 24 byte rimanenti.In entrambi i casi, se guardiamo indietro al file
proc_pid_syscall
funzione.Mentre in ARM a 32 bit e i386 copiamo solo 24 byte in
args
array, la stringa di formato finisce per leggere 48 byte del fileargs
matrice, dal momento che il%llx
La stringa di formato è di otto byte su sistemi a 32 e 64 bit. Quindi 24 byte di memoria heap non inizializzata finiscono per ottenere un output, il che potrebbe portare a un bypass KASLR.
Lo affermano i ricercatori questo attacco è "impossibile da rilevare in remoto su una rete" perché sta leggendo un file legittimo dal sistema operativo Linux. "Se utilizzato correttamente, un hacker potrebbe trarre vantaggio da questa fuga di informazioni per sfruttare con successo altre vulnerabilità Linux prive di patch", afferma Cisco.
A questo proposito, Google ha recentemente affermato:
“Le falle nella sicurezza della memoria spesso minacciano la sicurezza dei dispositivi, soprattutto delle applicazioni e dei sistemi operativi. Ad esempio, nel sistema operativo mobile Android supportato anche dal kernel Linux, Google afferma di aver scoperto che più della metà delle vulnerabilità di sicurezza affrontate nel 2019 erano il risultato di bug di sicurezza della memoria.
Ultimo, ma non per importanza Si consiglia di aggiornare le versioni 5.10-rc4, 5.4.66, 5.9.8 del kernel Linux, da allora Questa vulnerabilità è stata testata e confermata per essere in grado di sfruttare le seguenti versioni del kernel Linux.
Infine se sei interessato a saperne di più Per quanto riguarda il post, puoi controllare i dettagli nel file seguente link