CVE-2026-99174 in Linux
Résumé
par VulDB • 28/10/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
ext4 : libérer les données du superbloc (sbi) après une période de grâce
La fonction `ext4_get_link()` suit un lien symbolique qui conserve sa cible dans un bloc de données en mode de parcours de chemin RCU avec `ext4_getblk(EXT4_GET_BLOCKS_CACHED_NOWAIT)`. Cela lit `s_mount_state` dans l'ASSERT() de `ext4_getblk()` et à nouveau dans `ext4_es_lookup_extent()`, et la recherche incrémente le compteur de succès ou d'échec du statut des étendues, tout cela via `sb->s_fs_info`.
`ext4_put_super()` détruit ces compteurs, efface `sb->s_fs_info` et libère les données du superbloc (sbi) sans attendre une période de grâce. Un parcours de chemin qui est encore bloqué dans `ext4_get_link()` lorsque la dernière référence au montage disparaît déréférence alors un pointeur NULL vers `s_fs_info`, le sbi libéré ou les compteurs par CPU détruits.
Avec un parcours de chemin maintenu dans `ext4_get_link()` tandis que la dernière référence disparaît :
KASAN: null-ptr-deref in range [0x00000000000000a8-0x00000000000000af]
RIP: 0010:ext4_getblk+0xf0/0x640 Call Trace: <TASK> ext4_get_link+0x26c/0x410 pick_link+0xf96/0x1780 step_into_slowpath+0x9b8/0x1250 path_lookupat+0x484/0xb00 filename_lookup+0x1f1/0x5b0 vfs_statx+0xd7/0x3b0 vfs_fstatat+0x4d/0x90 __do_sys_newfstatat+0xa0/0x100 do_syscall_64+0x10e/0x5e0 entry_SYSCALL_64_after_hwframe+0x77/0x7f
Jusqu'à présent, cela a été difficile à exploiter. `umount(2)` attend une période de grâce dans `namespace_unlock()` avant de libérer le montage ; ainsi, seul un montage dont la dernière référence disparaît ailleurs (comme la fermeture d'un fichier ou un changement de répertoire hors d'un répertoire démonté paresseusement) peut créer une condition de concurrence avec un parcoursur.
Conserver `sb->s_fs_info` et libérer les données du superbloc (sbi) ainsi que les compteurs de statut des étendues après une période de grâce. Séparer les compteurs hors de `ext4_es_unregister_shrinker()` pour y parvenir. Le shrinker est toujours gaspillé dans `ext4_put_super()`, mais les compteurs sont libérés avec le sbi.
If you want to get best quality of vulnerability data, you may have to visit VulDB.