Vulnérabilité dans le sous-système du noyau Linux de USB Gadget, permettant potentiellement l'exécution de code

Une vulnérabilité (CVE-2021-39685) a été identifiée dans USB Gadget, un sous-système du noyau Linux qui fournit une interface de programmation pour la création de périphériques clients USB et la simulation logicielle de périphériques USB, qui pourrait entraîner une fuite du noyau, un plantage ou exécution de code arbitraire au niveau des noyaux. L'attaque est menée par un utilisateur local non privilégié via la manipulation de diverses classes d'appareils implémentées sur la base de l'API USB Gadget, telles que rndis, hid, uac1, uac1_legacy et uac2.

Le problème a été résolu dans les mises à jour du noyau Linux 5.15.8, 5.10.85, 5.4.165, 4.19.221, 4.14.258, 4.9.293 et ​​4.4.295 publiées récemment. Dans les distributions, le problème reste toujours non résolu (Debian, Ubuntu, RHEL, SUSE, Fedora, Arch). Un prototype d'exploit a été préparé pour démontrer la vulnérabilité.

Le problème est causé par un débordement de mémoire tampon dans les gestionnaires de demande de transfert de données dans les pilotes de gadget rndis, hid, uac1, uac1_legacy et uac2. Suite à l'exploitation de la vulnérabilité, un attaquant non privilégié peut accéder à la mémoire du noyau en envoyant une requête de contrôle spéciale avec une valeur de champ wLength qui dépasse la taille du tampon statique, pour lequel 4096 octets sont toujours alloués (USB_COMP_EP0_BUFSIZ). Pendant l'attaque, un processus d'espace utilisateur non privilégié peut lire ou écrire jusqu'à 65 Ko de données dans la mémoire du noyau.

Source: opennet.ru

Ajouter un commentaire