Vulnerabilitatea în subsistemul kernel-ului Linux al USB Gadget, care poate permite executarea codului

USB Gadget, un subsistem al nucleului Linux care oferă o interfață de programare pentru crearea de dispozitive client USB și software care simulează dispozitive USB, are o vulnerabilitate (CVE-2021-39685) care ar putea duce la scurgerea de informații din nucleu, blocarea sau executarea cod arbitrar la nivelul nucleelor. Atacul este efectuat de un utilizator local neprivilegiat prin manipularea diferitelor clase de dispozitive implementate pe baza API-ului USB Gadget, cum ar fi rndis, hid, uac1, uac1_legacy și uac2.

Problema a fost rezolvată în actualizările recent publicate de kernel Linux 5.15.8, 5.10.85, 5.4.165, 4.19.221, 4.14.258, 4.9.293 și 4.4.295. Problema rămâne nerezolvată în distribuții (Debian, Ubuntu, RHEL, SUSE, Fedora, Arch). Un prototip de exploatare a fost pregătit pentru a demonstra vulnerabilitatea.

Problema este cauzată de o depășire a memoriei tampon în gestionarea cererilor de transfer de date din driverele gadget rndis, hid, uac1, uac1_legacy și uac2. Ca urmare a exploatării vulnerabilității, un atacator neprivilegiat poate obține acces la memoria kernelului trimițând o cerere de control specială cu o valoare a câmpului wLength care depășește dimensiunea bufferului static, pentru care sunt întotdeauna alocați 4096 de octeți (USB_COMP_EP0_BUFSIZ). În timpul atacului, un proces neprivilegiat din spațiul utilizatorului poate citi sau scrie până la 65 KB de date în memoria kernelului.

Sursa: opennet.ru

Adauga un comentariu