CVE-2026-74580
vhost : réinitialiser le cache de métadonnées du vring lors de la reconfiguration du vring
- Publié
- 21 août 2026
- Mise à jour
- 16 oct. 2026
- Attribution de CNA
- Linux
- Preuve observée
- 19 oct. 2026
CVSS primaire
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:HFaible · 30 prochains jours
- Percentile
- 2,1 %
- Date du modèle
- 23 oct. 2026
EPSS est une estimation statistique, et non une certitude ou une mesure d'impact. Combinez-le avec CVSS, le statut KEV, l'exposition et votre environnement.
Résumé
Dans le noyau Linux, la vulnérabilité suivante a été corrigée : vhost : réinitialiser le cache de métadonnées du vring lors de la reconfiguration du vring. vq->meta_iotlb[] met en cache le vhost_iotlb_map qui sous-tend chaque région de métadonnées de vring, et iotlb_access_ok() retourne prématurément en cas de succès du cache, considérant ce succès comme la preuve que la région a déjà été validée : if (vhost_vq_meta_fetch(vq, addr, len, type)) return true; Le cache est réinitialisé lors de VHOST_IOTLB_UPDATE et VHOST_IOTLB_INVALIDATE, lors de la (ré)initialisation de l'IOTLB du périphérique et lors de la réinitialisation de vq, mais pas lorsque VHOST_SET_VRING_ADDR remplace vq->desc, vq->avail et vq->used, ni lorsque VHOST_SET_VRING_NUM modifie les tailles des régions. Avec un IOTLB de périphérique attaché, les deux ioctls sont acceptés tant que le vq est actif, et aucun ne valide les adresses au moment de l'ioctl : vq_access_ok() et vq_log_used_access_ok() retournent prématurément true car les adresses sont des GIOVA, reportant la validation au moment du prefetch. Une fois le cache rempli, cette validation différée ne s'exécute plus -- vq_meta_prefetch() atteint l'entrée obsolète et retourne true -- et vhost_vq_meta_fetch() continue de traduire via l'ancien mapping sous la forme map->addr + addr - map->start pour une adresse que le mapping ne couvre plus. vhost_copy_to_user() et vhost_copy_from_user() consomment le résultat avec __copy_to_user() et __copy_from_user(), qui ne le vérifient pas non plus, de sorte qu'une mise à jour ultérieure du used ring ou une récupération de descripteur accède à de la mémoire en dehors de la région réellement mappée par l'IOTLB. Réinitialiser le cache de métadonnées chaque fois que le vring est reconfiguré, afin que les nouvelles adresses soient renvoyées via le chemin lent de iotlb_access_ok().
Sources
Code C de preuve de concept et analyses pour des vulnérabilités du noyau Linux divulguées, incluant les sources d'exploit par CVE et l'analyse technique.
Utilisation responsable
Utilisez les informations de vulnérabilité uniquement sur les systèmes que vous possédez ou que vous êtes autorisé à tester. Kitploit renvoie aux métadonnées de la recherche publique et ne stocke pas de code d'exploitation ni de charges utiles malveillantes.