Vulnerabilità nel sottosistema del kernel Linux di USB Gadget, che potrebbe consentire l'esecuzione di codice

USB Gadget, un sottosistema del kernel Linux che fornisce un'interfaccia di programmazione per la creazione di dispositivi client USB e software che simula i dispositivi USB, presenta una vulnerabilità (CVE-2021-39685) che potrebbe portare alla fuga di informazioni dal kernel, al crash o all'esecuzione di codice arbitrario a livello di kernel. L'attacco viene effettuato da un utente locale non privilegiato attraverso la manipolazione di varie classi di dispositivi implementate sulla base dell'API USB Gadget, come rndis, hid, uac1, uac1_legacy e uac2.

Il problema è stato risolto negli aggiornamenti del kernel Linux recentemente pubblicati 5.15.8, 5.10.85, 5.4.165, 4.19.221, 4.14.258, 4.9.293 e 4.4.295. Il problema rimane irrisolto nelle distribuzioni (Debian, Ubuntu, RHEL, SUSE, Fedora, Arch). È stato preparato un prototipo di exploit per dimostrare la vulnerabilità.

Il problema è causato da un overflow del buffer nei gestori delle richieste di trasferimento dati nei driver dei gadget rndis, hid, uac1, uac1_legacy e uac2. Come risultato dello sfruttamento della vulnerabilità, un utente malintenzionato senza privilegi può accedere alla memoria del kernel inviando una speciale richiesta di controllo con un valore del campo wLength che supera la dimensione del buffer statico, per il quale vengono sempre allocati 4096 byte (USB_COMP_EP0_BUFSIZ). Durante l'attacco, un processo non privilegiato nello spazio utente può leggere o scrivere fino a 65 KB di dati nella memoria del kernel.

Fonte: opennet.ru

Aggiungi un commento