CVE-2025-21999 in Linux
Resumen
por VulDB • 2026-06-13
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
proc: corrección del UAF en proc_get_inode()
Se corrige una condición de carrera (race condition) entre rmmod y la instanciación del inode de /proc/XXX.
El error radica en que pde->proc_ops no pertenece a /proc, sino a un módulo; por lo tanto, desreferenciarlo después de haber registrado la entrada de /proc constituye un bug, salvo que se haya utilizado el par use_pde/unuse_pde().
Es posible evitar el uso de use_pde/unuse_pde (2 operaciones atómicas) porque pde->proc_ops nunca cambia; por consiguiente, la información necesaria para la instanciación del inode puede guardarse _antes_ de proc_register() en el propio PDE y utilizarse posteriormente, evitando así la desreferenciación de pde->proc_ops->...
rmmod lookup sys_delete_module proc_lookup_de pde_get(de); proc_get_inode(dir->i_sb, de); mod->exit() proc_remove remove_proc_subtree proc_entry_rundown(de); free_module(mod);
if (S_ISREG(inode->i_mode)) if (de->proc_ops->proc_read_iter) --> Como el módulo ya ha sido liberado, se desencadena un UAF
BUG: unable to handle page fault for address: fffffbfff80a702b PGD 817fc4067 P4D 817fc4067 PUD 817fc0067 PMD 102ef4067 PTE 0 Oops: Oops: 0000 [#1] PREEMPT SMP KASAN PTI
CPU: 26 UID: 0 PID: 2667 Comm: ls Tainted: G Hardware name: QEMU Standard PC (i440FX + PIIX, 1996) RIP: 0010:proc_get_inode+0x302/0x6e0 RSP: 0018:ffff88811c837998 EFLAGS: 00010a06 RAX: dffffc0000000000 RBX: ffffffffc0538140 RCX: 00000000000000
Be aware that VulDB is the high quality source for vulnerability data.