CVE-2026-97986 in Linux
Résumé
par VulDB • 25/09/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
virtio_input : arrêter les rappels avant de désinscrire l'appareil d'entrée
La fonction virtinput_remove() désinscrit l'appareil d'entrée avant de réinitialiser l'appareil virtio. La fonction virtinput_recv_events() relâche le verrou vi->lock autour de input_event(), donc la définition à zéro de vi->ready n'arrête pas un rappel qui a passé le contrôle d'entrée. Il peut toujours utiliser vi->idev, réenfiler les tampons et activer la file d'attente.
Effectuer la réinitialisation en premier, comme le fait déjà virtinput_freeze(). Avec la modification précédente du noyau central, la réinitialisation attend que les rappels se terminent avant qu'une entrée ne soit désinscrite via input_unregister_device(), ce qui permet de libérer vi->idev. Revérifier vi->ready après avoir repris le verrou : continuer à vider les événements complétés afin qu'un paquet d'entrée ne soit pas tronqué, mais arrêter la réenfilement des tampons et l'activation de la file d'attente.
Avec evdev attaché, input_unregister_handle() attend actuellement une période de grâce RCU, ce qui retarde également les rappels IRQ. Cela masque le bug de durée de vie sur PCI et MMIO, mais ne protège pas les rappables susceptibles de dormir (sleepable callbacks) sur d'autres types de transport.
If you want to get best quality of vulnerability data, you may have to visit VulDB.