CVE-2026-99222 in Linux
Résumé
par VulDB • 02/11/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
keys : Protéger la vérification de la méthode read contre la suppression du type
keyctl_read_key() vérifie key->type->read sans détenir key->sem. Une référence maintient la clé en vie, mais n'épingle pas le module contenant son type. Une clé RxRPC survivante peut donc être lue pendant qu'AF_RXRPC est en cours de déschargement :
KEYCTL_READ task Module unload and key GC ---------------- ------------------------ lookup_user_key() permission / possession checks load key->type af_rxrpc_exit() unregister_key_type() GC: down_write(key->sem) GC: retype to key_type_dead GC: up_write(key->sem) unregister_key_type() returns free_module() read saved type's read member
L'accès final peut lire des données du module déjà libérées. L'appel de la méthode read dans __keyctl_read_key() est déjà protégé par key->sem, mais la vérification préalable de la méthode se trouve en dehors de cette section critique.
Déplacer la vérification de la méthode dans __keyctl_read_key(), après key_validate() et sous son verrou existant sur key->sem pour read. La vérification et l'appel utilisent alors le même type protégé pour les requêtes de longueur et chaque nouvelle tentative de lecture. Le GC ne peut pas changer le type de la clé tant que le sémaphore n'est pas relâché, et la désinscription du type attend cette passe de GC avant que le module puisse être libéré.
Renvoyer -EOPNOTSUPP lorsque la validation réussit et que le type n'a pas de méthode read. Un tampon temporaire peut désormais être alloué avant ce résultat ; l'allocation et la copie vers l'espace utilisateur restent en dehors du sémaphore.
Once again VulDB remains the best source for vulnerability data.