CVE-2026-98260
exec: Limpiar los temporizadores POSIX justo después de de_thread()
- Publicado
- 6 oct 2026
- Actualizado
- 30 oct 2026
- Asignación de CNA
- Linux
- Evidencia observada
- 4 nov 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
- 8,2 %
- Fecha del modelo
- 4 nov 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: exec: Limpiar los temporizadores POSIX justo después de de_thread() Un temporizador de CPU por hilo mantiene una referencia al PID del hilo al que está asociado y, mientras está armado, su nodo está en cola en el posix_cputimers de ese hilo. La tarea se busca por ese PID. Cuando un hilo no líder ejecuta exec(), de_thread() cambia qué tarea posee ese PID. pid_task(timer->it.cpu.pid, PIDTYPE_PID) entonces devuelve NULL, pero el nodo sigue en cola en tsk, que está vivo. timer_lock_sighand() interpreta una búsqueda fallida como que el nodo ya está desencolado, por lo que no tiene nada que deshacer. begin_new_exec() llama a posix_cpu_timers_exit(me) justo después de exec_task_namespaces() y eso elimina el nodo sobrante, por lo que el estado normalmente permanece invisible. Pero bprm->point_of_no_return se establece antes de de_thread(), así que si unshare_files(), set_mm_exe_file(), exec_mmap() o exec_task_namespaces() falla, la tarea muere antes de llegar allí. exit_itimers() entonces libera el k_itimer mientras su nodo sigue en cola, y la recolección posterior de tsk borra ese nodo liberado del rbtree. En resumen: el hilo no líder B el padre timer_create(CLOCK_THREAD_CPUTIME_ID) timer_settime() arm_timer() // el nodo está en cola en B execve() de_thread(B) exchange_tids(B, leader) // el PID de B ahora pertenece al líder release_task(leader) __exit_signal(leader) posix_cpu_timers_exit(leader) // limpia la cola del líder, no la de B __unhash_process(leader) // ese PID ya no tiene tarea exec_mmap() mmap_read_lock_killable(old_mm) kill(B, SIGKILL) // -EINTR get_signal() do_exit() exit_itimers() posix_timer_delete() posix_cpu_timer_del() posix_timer_unhash_and_free() // liberado mientras sigue en cola wait4() release_task(B) posix_cpu_timers_exit(B) cleanup_timerqueue() timerqueue_del() // use-after-free Mover la limpieza de los temporizadores POSIX justo después de de_thread() antes de que cualquiera de las condiciones de fallo posteriores lleve la tarea a do_exit(). [ tglx: Mover la limpieza justo después de de_thread() ]
Fuentes
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.