Vulnerabilità nel kernel Linux, sfruttabili da remoto tramite Bluetooth

È stata identificata una vulnerabilità nel kernel Linux (CVE-2022-42896) che può essere potenzialmente sfruttata per eseguire codice in remoto a livello di kernel inviando un pacchetto L2CAP appositamente formattato tramite Bluetooth. Inoltre, è emersa un'altra problematica simile (CVE-2022-42895) nel gestore L2CAP, che può portare a una fuoriuscita del contenuto della memoria del kernel in pacchetti con informazioni di configurazione. La prima vulnerabilità è presente dal agosto 2014 (kernel 3.16), mentre la seconda è attiva dal ottobre 2011 (kernel 3.0). Le vulnerabilità sono state corrette nelle versioni del kernel Linux 6.1.0, 6.0.8, 4.9.333, 4.14.299, 4.19.265, 5.4.224, 5.10.154 e 5.15.78. È possibile monitorare le correzioni nei seguenti rilasci: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

Per dimostrare la possibilità di un attacco remoto, sono stati pubblicati prototipi di exploit che funzionano su Ubuntu 22.04. Per eseguire l'attacco, l'aggressore deve trovarsi entro la portata del Bluetooth — non è necessario un accoppiamento preliminare, ma il Bluetooth deve essere attivo sul computer. Per l'attacco è sufficiente conoscere l'indirizzo MAC del dispositivo della vittima, che può essere determinato tramite sniffing o calcolato su alcuni dispositivi in base all'indirizzo MAC del Wi-Fi.

La prima vulnerabilità (CVE-2022-42896) è causata dall'accesso a un'area di memoria già rilasciata (use-after-free) nell'implementazione delle funzioni l2cap_connect e l2cap_le_connect_req — dopo la creazione di un canale tramite la callback new_connection, non veniva impostato un blocco, ma veniva impostato un timer (__set_chan_timer), che, alla scadenza del timeout, chiamava la funzione l2cap_chan_timeout e puliva il canale senza controllare che il lavoro con il canale fosse terminato nelle funzioni l2cap_le_connect*.

Per impostazione predefinita, il timeout è di 40 secondi e si presumeva che in tale ritardo non potesse verificarsi una condizione di gara, ma si è scoperto che a causa di un altro errore nel gestore SMP è possibile ottenere un richiamo immediato del timer e raggiungere una condizione di gara. Il problema in l2cap_le_connect_req può portare a fuoriuscita di memoria del kernel, mentre in l2cap_connect a sovrascrittura del contenuto della memoria ed esecuzione del proprio codice. Il primo tipo di attacco può essere effettuato utilizzando Bluetooth LE 4.0 (dal 2009), mentre il secondo con Bluetooth BR/EDR 5.2 (dal 2020).

La seconda vulnerabilità (CVE-2022-42895) è causata dalla perdita di dati residui dalla memoria nella funzione l2cap_parse_conf_req, che può essere utilizzata per ottenere da remoto informazioni sui puntatori a strutture del kernel inviando richieste di configurazione appositamente formattate. Nella funzione l2cap_parse_conf_req si utilizzava una struttura l2cap_conf_efs, per la quale non veniva effettuata un'inizializzazione preliminare della memoria allocata e tramite manipolazioni del flag FLAG_EFS_ENABLE era possibile includere nel pacchetto dati obsoleti dallo stack. Il problema si manifesta solo nei sistemi in cui il kernel è compilato con l'opzione CONFIG_BT_HS (disabilitata per impostazione predefinita, ma attivata in alcune distribuzioni, come Ubuntu). Per un attacco di successo è anche necessario impostare il parametro HCI_HS_ENABLED tramite l'interfaccia di controllo su true (non utilizzato per impostazione predefinita).

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster