CVE-2026-98260
exec : nettoyage des minuteries POSIX juste après de_thread()
- Publié
- 6 oct. 2026
- Mise à jour
- 30 oct. 2026
- Attribution de CNA
- Linux
- Preuve observée
- 4 nov. 2026
CVSS primaire
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HFaible · 30 prochains jours
- Percentile
- 8,2 %
- Date du modèle
- 4 nov. 2026
EPSS est une estimation statistique, et non une certitude ou une mesure d'impact. Combinez-le avec CVSS, le statut KEV, l'exposition et votre environnement.
Résumé
Dans le noyau Linux, la vulnérabilité suivante a été corrigée : exec : nettoyage des minuteurs POSIX juste après de_thread() Un minuteur CPU par thread détient une référence au PID du thread auquel il est attaché et, tant qu'il est armé, son nœud est mis en file d'attente dans les posix_cputimers de ce thread. La tâche est recherchée par ce PID. Lorsqu'un thread non-leader exécute exec(), de_thread() change la tâche propriétaire de ce PID. pid_task(timer->it.cpu.pid, PIDTYPE_PID) renvoie alors NULL, mais le nœud est toujours en file d'attente sur tsk, qui est vivant. timer_lock_sighand() interprète une recherche échouée comme signifiant que le nœud est déjà retiré de la file, il n'a donc rien à annuler. begin_new_exec() appelle posix_cpu_timers_exit(me) juste après exec_task_namespaces() et cela supprime le nœud restant, de sorte que l'état reste normalement invisible. Mais bprm->point_of_no_return est défini avant de_thread(), donc si unshare_files(), set_mm_exe_file(), exec_mmap() ou exec_task_namespaces() échoue, la tâche meurt avant d'y arriver. exit_itimers() libère alors le k_itimer alors que son nœud est toujours en file d'attente, et le reap de tsk efface ensuite ce nœud libéré de l'arbre rouge-noir. En bref : le thread non-leader B le parent timer_create(CLOCK_THREAD_CPUTIME_ID) timer_settime() arm_timer() // le nœud est mis en file d'attente sur B execve() de_thread(B) exchange_tids(B, leader) // le PID de B appartient maintenant au leader release_task(leader) __exit_signal(leader) posix_cpu_timers_exit(leader) // nettoie la file du leader, pas celle de B __unhash_process(leader) // ce PID n'a plus de tâche 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() // libéré alors qu'il est toujours en file d'attente wait4() release_task(B) posix_cpu_timers_exit(B) cleanup_timerqueue() timerqueue_del() // utilisation après libération Déplacer le nettoyage des minuteurs POSIX juste après de_thread() avant que l'une des conditions d'échec ultérieures n'amène la tâche dans do_exit(). [ tglx : Déplacer le nettoyage juste après de_thread() ]
Sources
Utilisation responsable
Utilisez les informations de vulnérabilité uniquement sur les systèmes que vous possédez ou que vous êtes autorisé à tester. Kitploit renvoie aux métadonnées de la recherche publique et ne stocke pas de code d'exploitation ni de charges utiles malveillantes.