CVE-2026-97994 in Linuxinformation

Résumé

par VulDB • 25/09/2026

Dans le noyau Linux, la vulnérabilité suivante a été corrigée :

vhost/vdpa : rejeter une valeur VRING_NUM supérieure au maximum du périphérique

La fonction vhost_vring_set_num() accepte toute taille de file d'attente (queue size) non nulle et puissance de deux qui tient sur 16 bits. Ensuite, vhost-vdpa transmet cette valeur à set_vq_num() sans la comparer avec get_vq_num_max().

Un processus ayant accès à /dev/vhost-vdpa-* peut donc configurer une file d'attente plus grande que ce que le périphérique annonce. Avec vdpa_sim, l'agent de traitement (worker) peut parcourir les descripteurs au-delà du ring de descripteurs mappé. KASAN signale une lecture hors limites de 16 octets, correspondant à un vring_desc, dans la voie IOTLB de vringh :

BUG: KASAN: out-of-bounds in _copy_from_iter Read of size 16 copy_from_iotlb copydesc_iotlb vringh_getdesc_iotlb vdpasim_net_work

Mettre en cache get_vq_num_max() immédiatement après la réinitialisation (reset). Certains backends dérivent cette valeur de l'état de taille de file d'attente inscriptible, donc sa requête après SET_NUM peut retourner la taille actuelle au lieu des capacités du périphérique. Invalider la valeur mise en cache avant le reset afin qu'un échec de réinitialisation désactive SET_NUM.

Pour VHOST_SET_VRING_NUM, copier l'état complet de vring une seule fois et utiliser les mêmes index et taille pour la validation, vq->num, et set_vq_num(). Cela garantit que la validation et l'utilisation opèrent sur les mêmes valeurs copiées.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Responsable

Linux

Réserver

25/09/2026

Divulgation

25/09/2026

Modérer

accepté

Entrée

VDB-410172

CPE

prêt

EPSS

0.00000

KEV

non

Activités

très faible

Sources

Want to stay up to date on a daily basis?

Enable the mail alert feature now!