Linux内核CPU定时器UAF漏洞CVE-2026-64560:非主线程exec竞态可致提权
CVE-2026-64560是Linux内核posix-cpu-timers的释放后使用漏洞,CVSS 7.8。非leader线程exec竞态可导致本地提权。本文分析漏洞原理、攻击链及修复方案,并提供缓解建议。
🔓 High 漏洞利用
CVE-2026-64560是Linux内核posix-cpu-timers中存在的一个释放后使用(UAF)漏洞,源于非leader线程执行exec()时与定时器删除/设置操作发生竞态。攻击者可通过恶意程序触发该竞态,导致内核对象释放后被访问,进而可能实现本地权限提升(CVSS 7.8)。
来源:NVD-Latest | 2026-07-29 | 原文链接
🔍 关键发现
- sys_timer_delete()与exec()中的de_thread()/release_task()竞态导致对已释放posix timer对象的访问
- 非leader exec()使TGID定向定时器被继承,但定时器对象可能已被释放,引发timerqueue节点UAF
- posix_cpu_timer_set()和posix_cpu_timer_rearm()也存在类似问题,分别造成栈上k_itimer UAF和定时器失效
- 弱内存序架构下p->sighand置空与posix_cpu_timers_exit()存储的可见性无保证,可能触发WARN误报
⚔️ 攻击链分析
1. 攻击者在目标系统上运行恶意程序,创建非leader线程并设置posix CPU定时器;2. 同时触发非leader线程调用exec(),使内核进入de_thread()/release_task()路径;3. 另一线程调用timer_delete()或timer_set(),因竞态获取到旧leader的sighand为NULL而提前释放定时器对象;4. 内核后续访问已释放的timerqueue节点,造成UAF,攻击者利用堆布局控制释放内存进而提升权限。
🚩 失陷指标 (IOC)
恶意程序调用exec()与timer_delete()/timer_set()的竞态特征内核日志中可能出现posix_timer相关UAF或WARN_ONCE痕迹
🛡️ 缓解建议
- ✅ 及时更新Linux内核至修复版本(包含commit smp_store_release/smp_acquire__after_ctrl_dep等补丁)
- ✅ 限制非特权用户对posix CPU定时器的使用(如通过seccomp或内核配置)
- ✅ 部署内核地址空间布局随机化(KASLR)和堆隔离缓解UAF利用
- ✅ 监控异常进程行为,特别是短时间内频繁exec与timer操作的组合
涉及漏洞:["CVE-2026-64560"]
⚠️ 本文仅供安全研究与学习,IOC 信息请勿用于非法目的。
🤖 常见问题解答(FAQ)
❓ 该漏洞影响哪些Linux版本?
受影响版本广泛,涵盖2010年引入e0a70217107e工作区间的内核,直至修复合入。具体版本需参考发行商安全通告。
❓ 攻击者需要本地登录才能利用吗?
是的,该漏洞为本地利用,攻击者需能在目标系统上执行代码(非特权用户),无法远程直接利用。
❓ 修复方案的核心机制是什么?
通过smp_store_release确保__exit_signal中p->sighand置空前的存储可见,并在lock_task_sighand中增加acquire语义;同时重试任务查找以处理非leader exec切换leader的场景。