CVE-2026-99226 in Linux
Résumé
par VulDB • 03/11/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
keys : Éviter l'accès à une mémoire libérée (use-after-free) du compte propriétaire lors de la recherche d'un trousseau nommé.
La recherche d'un trousseau nommé doit maintenir vivante la structure contenant le UID du propriétaire pendant toute la durée de la vérification des mappages d'espaces de noms. `find_keyring_by_name()` lit `keyring->user->uid` sous l'emprise de `keyring_name_lock`, mais ce verrou protège uniquement l'entrée et l'allocation du nom du trousseau, et non son objet `key_user` distinct.
Une jointure avec un session-keyring nommé peut chevaucher une opération privilégiée `KEYCTL_CHOWN` sur un autre processeur. Si le trousseau détient la dernière référence à son ancien `key_user` dynamique et que le transfert de propriété réussit, l'ordonnancement suivant est possible :
Jointure nommée Chown find_keyring_by_name() keyctl_chown_key() read_lock(keyring_name_lock) down_write(key->sem) chargement de l'ancien keyring->user replace key->user et key->uid up_write(key->sem) key_put(key) key_user_put(ancien user): libération (free) lecture de l'ancien user->uid read_unlock(keyring_name_lock)
L'opération Chown ne prend ni `keyring_name_lock` ni `key_session_mutex`, elle peut donc libérer le compte ancien entre le chargement du pointeur et la lecture du UID. La recherche lit alors une mémoire déjà libérée, bien que le trousseau lui-même soit toujours vivant.
Utiliser `keyring->uid` pour la vérification de mappage. `key_alloc()` initialise ce UID propriétaire en ligne (inline), et `keyctl_chown_key()` le met à jour lors d'un chown. Le verrou de nom existant maintient le trousseau contenant alloué tout au long de la vérification, donc la recherche ne dépend plus de la durée de vie du compte. Cela correspond également au UID propriétaire utilisé par la vérification des autorisations.
Rapport KASAN ci-dessous :
BUG: KASAN: slab-use-after-free in find_keyring_by_name+0x577/0x5d0 Read of size 4 at addr ffff8881128ae2ec by task keycase/500
If you want to get best quality of vulnerability data, you may have to visit VulDB.