CVE-2025-40271
fs/proc: corrige uaf en proc_readdir_de()
- Publicado
- 6 dic 2025
- Actualizado
- 5 ago 2026
- Asignación de CNA
- Linux
- Evidencia observada
- 4 may 2026
CVSS primario
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HBajo · próximos 30 días
- Percentil
- 38,7 %
- Fecha del modelo
- 21 sept 2026
EPSS es una estimación estadística, no una certeza o una medida de impacto. Combínelo con CVSS, estado KEV, exposición y su entorno.
Resumen
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: fs/proc: fix uaf in proc_readdir_de() Pde se borra del rbtree de subdirectorios mediante rb_erase(), pero el nodo no se establece como EMPTY, lo que puede provocar un acceso uaf. Deberíamos usar RB_CLEAR_NODE() para establecer el nodo borrado como EMPTY; entonces pde_subdir_next() devolverá NULL para evitar el acceso uaf. Encontramos un problema de uaf al usar las pruebas de stress-ng; es necesario ejecutar el caso de prueba getdent y tun al mismo tiempo. Los pasos del problema son los siguientes: 1) usar getdent para recorrer el directorio /proc/pid/net/dev_snmp6/, y el pde actual es tun3; 2) en la [ventana de tiempo] desregistrar los netdevices tun3 y tun2, y borrarlos del rbtree. borrar primero tun3, y luego borrar tun2. el pde(tun2) será liberado a la slab; 3) continuar el proceso de getdent, entonces pde_subdir_next() devolverá pde(tun2) que ya está liberado, lo que causará un acceso uaf. | CPU 0 | CPU 1 | | ------------------------------------------------------------------------- | | recorrer directorio /proc/pid/net/dev_snmp6/ | unregister_netdevice(tun->dev) //tun3 tun2 | | sys_getdents64() | iterate_dir() | | proc_readdir() | proc_readdir_de() | | snmp6_unregister_dev() | | pde_get(de); | proc_remove() | | read_unlock(&proc_subdir_lock); | remove_proc_subtree() | | write_lock(&proc_subdir_lock); | | [ventana de tiempo] | rb_erase(&root->subdir_node, &parent->subdir); | | write_unlock(&proc_subdir_lock); | | read_lock(&proc_subdir_lock); | next = pde_subdir_next(de); | | pde_put(de); | de = next; //UAF | | rbtree de dev_snmp6 | | pde(tun3) / \ NULL pde(tun2) |
Fuentes
3- CVE-2025-40271Investigación
Análisis técnico de CVE-2025-40271, una vulnerabilidad crítica de Use-After-Free en el sistema de archivos /proc del kernel de Linux, incluyendo la causa raíz, pasos de reproducción y detalles del parche.
Uso responsable
Utilice información sobre vulnerabilidades solo en sistemas de su propiedad o que esté autorizado a probar. Kitploit enlaza con metadatos de investigación pública y no almacena código de explotación ni cargas útiles maliciosas.