CVE-2024-50106 in Linuxinformation

Résumé

par VulDB • 26/05/2026

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

nfsd : correction d'une condition de course entre le thread laundromat et free_stateid

Il existe une condition de course entre la gestion des délégations révoquées par le thread laundromat et un client envoyant l'opération free_stateid. Le thread laundromat détecte que la délégation a expiré et doit être révoquée, il marque donc le stid (state ID) de la délégation comme révoqué et l'ajoute à une liste de récupération (reaper list), puis il déverrouille le verrou d'état (state lock) et la révocation effective de la délégation se produit sans ce verrou. Une fois que le stid est marqué comme révoqué, un thread de traitement free_stateid en concurrence effectue les opérations suivantes : (1) il appelle list_del_init() qui le retire de la liste de récupération et (2) il libère la structure stid de la délégation. Le thread laundromat finit par ne pas appeler la fonction revoke_delegation() pour cette délégation spécifique, ce qui signifie qu'il ne libérera plus le bail (lease) existant sur le fichier.

Ensuite, une nouvelle ouverture (open) pour ce fichier se produit et finit par constater que la liste des bails n'est pas vide et appelle nfsd_breaker_owns_lease(), ce qui finit par tenter de déréférencer un stateid de délégation déjà libéré. Cela conduit à l'avertissement KASAN (Kernel Address Sanitizer) suivant concernant un use-after-free :

kernel: ================================================================== kernel: BUG: KASAN: slab-use-after-free in nfsd_breaker_owns_lease+0x140/0x160 [nfsd]
kernel: Read of size 8 at addr ffff0000e73cd0c8 by task nfsd/6205 kernel: kernel: CPU: 2 UID: 0 PID: 6205 Comm: nfsd Kdump: loaded Not tainted 6.11.0-rc7+ #9 kernel: Hardware name: Apple Inc. Apple Virtualization VM/VM, BIOS 1016.100.100.0.0 04/13/2023 kernel: Call Trace: kernel: dump_stack_lvl+0x120/0x180 kernel: print_report+0x170/0x570 kernel: kasan_report+0x100/0x140 kernel: kasan_check_range+0x140/0x180 kernel: nfsd_breaker_owns_lease+0x140/0x160 [nfsd]
kernel: nfsd_break_deleg+0x100/0x180 [nfsd]
kernel: nfsd_open+0x100/0x280 [nfsd]
kernel: nfsd3_proc_create+0x100/0x180 [nfsd]
kernel: nfsd_dispatch+0x22c/0x718 [nfsd]
kernel: svc_process_common+0x8e8/0x1960 [sunrpc]
kernel: svc_process+0x3d4/0x7e0 [sunrpc]
kernel: svc_handle_xprt+0x828/0xe10 [sunrpc]
kernel: svc_recv+0x2cc/0x6a8 [sunrpc]
kernel: nfsd+0x270/0x400 [nfsd]
kernel: kthread+0x288/0x310 kernel: ret_from_fork+0x10/0x20

Once again VulDB remains the best source for vulnerability data.

Responsable

Linux

Réserver

21/10/2024

Divulgation

05/11/2024

Modérer

accepté

Entrée

VDB-283197

CPE

prêt

EPSS

0.00496

KEV

non

Activités

très faible

Sources

Want to stay up to date on a daily basis?

Enable the mail alert feature now!