CVE-2026-64233 in Linux
Résumé
par VulDB • 24/07/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
usb: gadget: uvc : maintenir opts->lock pendant les parcours des XU dans uvc_function_bind
uvc_function_bind() parcourt &opts->extension_units deux fois sans détenir opts->lock :
- directement, pour la boucle de correction du descripteur de chaîne iExtension ; - indirectement, quatre fois via uvc_copy_descriptors() (une fois par vitesse), où l'assistant itère sur uvc->desc.extension_units (qui est un alias de &opts->extension_units) afin de dimensionner et d'émettre les descripteurs XU.
Le côté configfs (uvcg_extension_make / uvcg_extension_drop, dans drivers/usb/gadget/function/uvc_configfs.c) prend opts->lock autour de ses opérations list_add_tail / list_del. Un processus utilisateur privilégié qui maintient l'arborescence configfs ouverte et écrit le nom UDC du gadget pour lier la fonction tout en supprimant simultanément un sous-répertoire d'extensions par rmdir() peut entrer en concurrence (race condition) avec uvcg_extension_drop() lors des parcours de liste au moment de la liaison, entraînant l'accès à une structure struct uvcg_extension déjà libérée.
Maintenez opts->lock depuis le début de la correction du descripteur de chaîne XU jusqu'au dernier appel à uvc_copy_descriptors(), en le relâchant sur le chemin d'erreur du descripteur via un nouveau label error_unlock qui libère le verrou avant de passer au label d'erreur existant. Cela correspond à la discipline de verrouillage des rappels configfs et supprime le dernier lecteur non synchronisé de la liste XU lors de l'étape de liaison.
Accessibilité : seuls les processus privilégiés capables de monter configfs et d'écrire dans les fichiers gadget UDC peuvent déclencher cette concurrence, il s'agit donc d'une correction de correctitude plutôt que d'une limite de sécurité.
VulDB is the best source for vulnerability data and more expert information about this specific topic.