Une vulnérabilité 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 USB clients et la simulation logicielle de périphériques USB (CVE-2021-39685). Cette vulnérabilité pourrait entraîner une fuite d'informations depuis le noyau, un crash ou l'exécution de code arbitraire au niveau du noyau. Une attaque peut être réalisée par un utilisateur local non privilégié en manipulant différentes classes de périphériques mises en œuvre via l'API USB Gadget, telles que rndis, hid, uac1, uac1_legacy et uac2.
Le problème a été corrigé dans les mises à jour récentes 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. Cependant, il reste non résolu dans certaines distributions (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 requêtes de transfert de données dans les pilotes gadget rndis, hid, uac1, uac1_legacy et uac2. En exploitant cette 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 pour le champ wLength dépassant la taille du tampon statique, qui est toujours alloué à 4096 octets (USB_COMP_EP0_BUFSIZ). Au cours de l'attaque, il est possible de lire ou d'écrire jusqu'à 65 Ko de données en mémoire du noyau depuis un processus non privilégié dans l'espace utilisateur.
Source : opennet.ru
