In USB Gadget, un sottosistema del kernel LinuxÈ stata identificata una vulnerabilità (CVE-2021-39685) nell'API USB Gadget, che fornisce un'interfaccia software per la creazione di dispositivi USB client e la simulazione di dispositivi USB. Questa vulnerabilità potrebbe portare alla fuga di informazioni del kernel, a crash o all'esecuzione di codice arbitrario a livello del kernel. L'attacco viene effettuato da un utente locale non privilegiato manipolando diverse classi di dispositivi implementate tramite l'API USB Gadget, come rndis, hid, uac1, uac1_legacy e uac2.
Il problema è stato risolto negli aggiornamenti del kernel pubblicati di recente. Linux 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 predisposto un prototipo di exploit per dimostrare la vulnerabilità.
Il problema è causato da un buffer overflow nei gestori delle richieste di trasferimento dati dei driver dei gadget rndis, hid, uac1, uac1_legacy e uac2. Sfruttando questa vulnerabilità, un aggressore senza privilegi può accedere alla memoria del kernel inviando una richiesta di controllo speciale con un valore del campo wLength superiore alla dimensione del buffer statico, che è sempre allocata a 4096 byte (USB_COMP_EP0_BUFSIZ). Questo attacco consente a un processo in spazio utente senza privilegi di leggere o scrivere fino a 65 KB di dati nella memoria del kernel.
Fonte: opennet.ru
