CVE-2026-98260
exec:在 de_thread() 之后立即清理 POSIX 定时器
- 已发布
- 2026年10月6日
- 已更新
- 2026年10月30日
- 分配 CNA
- Linux
- 观察到的证据
- 2026年11月4日
初级CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H低 · 未来 30 天
- 百分位
- 8.2%
- 型号日期
- 2026年11月4日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
在 Linux 内核中,以下漏洞已被修复:exec:在 de_thread() 之后立即清理 POSIX 定时器。每个线程的 CPU 定时器持有对其所附加线程的 PID 的引用,并且在它处于已启用状态时,其节点会排队在该线程的 posix_cputimers 中。任务通过该 PID 进行查找。当非领导者线程执行 exec() 时,de_thread() 会改变哪个任务拥有该 PID。此时 pid_task(timer->it.cpu.pid, PIDTYPE_PID) 返回 NULL,但该节点仍排队在仍然存活的 tsk 上。timer_lock_sighand() 将查找失败视为该节点已被出队,因此它没有任何需要撤销的操作。begin_new_exec() 在 exec_task_namespaces() 之后立即调用 posix_cpu_timers_exit(me),这会移除遗留的节点,因此该状态通常保持不可见。但是 bprm->point_of_no_return 在 de_thread() 之前就被设置,因此如果 unshare_files()、set_mm_exe_file()、exec_mmap() 或 exec_task_namespaces() 失败,任务会在到达该处之前死亡。随后 exit_itimers() 会释放 k_itimer,而它的节点仍在队列中,之后回收 tsk 时会从 rbtree 中擦除那个已释放的节点。简而言之:非领导者线程 B 父进程 timer_create(CLOCK_THREAD_CPUTIME_ID) timer_settime() arm_timer() // 该节点排队在 B 上 execve() de_thread(B) exchange_tids(B, leader) // B 的 PID 现在属于领导者 release_task(leader) __exit_signal(leader) posix_cpu_timers_exit(leader) // 清理领导者的队列,而不是 B 的 __unhash_process(leader) // 该 PID 不再有任何任务 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() // 在仍排队时被释放 wait4() release_task(B) posix_cpu_timers_exit(B) cleanup_timerqueue() timerqueue_del() // 释放后使用。将 POSIX 定时器清理移到 de_thread() 之后,位于任何后续失败条件使任务进入 do_exit() 之前。[ tglx:将清理移到 de_thread() 之后 ]
来源
- CVE-2026-98260漏洞利用
Android kernel LPE research for CVE-2026-98260 (posix-cpu-timers UAF): trigger PoC, fake-cred and real-cred uid-0 shell chains, plus a Shizuku/KernelSU bootstrap app.
CVE-2026-98260: Xiaomi 17 Ultra (nezha) temporary root + KernelSU PoC - scripts, docs and logs only; exploit built from upstream source
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。