# POSIX CPU定时器竞态修复漏洞
## 概述
Linux 内核中修复了 `posix-cpu-timers` 子系统中一个竞态条件漏洞。该漏洞可能在任务退出时由于信号处理与定时器删除之间同步不当,导致不可预期的行为。
## 影响版本
未明确指定受影响的版本范围,但漏洞存在于使用 `posix-cpu-timers` 且未启用 `CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y` 的 Linux 内核版本中。
## 细节
当一个正在退出的非自动回收任务(non-autoreaping task)已经调用 `exit_notify()`,并在中断上下文(IRQ)中执行 `handle_posix_cpu_timers()` 时:
- 若其父进程或调试器在 `unlock_task_sighand()` 后立即回收该任务(reap),之后又发生并发调用 `posix_cpu_timer_del()`;
- 此时,`posix_cpu_timer_del()` 无法正确检测到 `timer->it.cpu.firing != 0`,因为 `cpu_timer_task_rcu()` 和/或 `lock_task_sighand()` 将失败;
- 这会导致定时器删除操作在任务已被回收或正被回收时没有安全拦截。
## 影响
此漏洞可能引发定时器操作的 UAF(Use-After-Free)或不一致状态,特别是在未启用 `CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y` 的系统中。
修复方法是在 `run_posix_cpu_timers()` 中添加对 `tsk->exit_state` 的检查以阻止对正在退出任务的定时器操作。
启用 `CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y` 的系统不受该问题影响,因为该配置选项会在 `exit_notify()` 之前执行相关清理工作,但增加该检查也未带来开销,仍然有意义。
是否为 Web 类漏洞: 未知
判断理由:
| # | POC 描述 | 源链接 | 神龙链接 |
|---|---|---|---|
| 1 | This is a proof of concept for CVE-2025-38352, a vulnerability in the Linux kernel's POSIX CPU timers implementation. The September 2025 Android Bulletin mentions that this vulnerability has been used in limited, targeted exploitation in the wild. | https://github.com/farazsth98/poc-CVE-2025-38352 | POC详情 |
| 2 | Android kernel exploit for CVE-2025-38352, previously exploited in-the-wild. Targets vulnerable Linux kernels v5.10.x. | https://github.com/farazsth98/chronomaly | POC详情 |
| 3 | None | https://github.com/Crime2/poc-CVE-2025-38352 | POC详情 |
标题: posix-cpu-timers: fix race between handle_posix_cpu_timers() and posix_cpu_timer_del() - kernel/git/stable/linux.git - Linux kernel stable tree -- 🔗来源链接
标签:
神龙速读:
### 关键信息
- **漏洞类型**: Race Condition
- **影响文件**: `kernel/time/posix-cpu-timers.c`
- **修复提交**: c076635ba42771ace7d276de8dc3bc76ee2ba1b
- **问题描述**:
- 在非自动重置任务已经通过 `exit_notify()` 并从 IRQ 调用 `handle_posix_cpu_timers()` 时,可能会被其父进程或调试器立即收割。
- 如果此时并发执行 `posix_cpu_timer_del()`,则无法检测到 `timer->it.cpu.firing != 0`,导致 `cpu_timer_task_rcu()` 和/或 `lock_task_sighand()` 失败。
- **修复措施**:
- 在 `run_posix_cpu_timers()` 中添加对 `tsk->exit_state` 的检查,以确保在 `release_task(tsk)` 发生之前不会运行 `handle_posix_cpu_timers()`。
- 如果 `CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y`,则不需要此修复,因为 `exit_task_work()` 在 `exit_notify()` 之前调用。但该检查仍然有意义,因为 `task_work_add(&tsk->posix_cputimers_work.work)` 可能会失败。
- **相关提交**:
- Fixes: 08dde4d138e ("sched: run_posix_cpu_timers: Don't check ->exit_state, use lock_task_sighand()")
- **报告者**: Benoit Sevens <bsevens@google.com>
- **作者**: Oleg Nesterov <oleg@redhat.com>
- **提交者**: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
标题: posix-cpu-timers: fix race between handle_posix_cpu_timers() and posix_cpu_timer_del() - kernel/git/stable/linux.git - Linux kernel stable tree -- 🔗来源链接
标签:
神龙速读:
### 关键信息
- **漏洞类型**: Race Condition
- **影响文件**: `kernel/time/posix-cpu-timers.c`
- **修复提交**: 460188bc042a3f40f7f7fc6ee66bb0b757b
- **问题描述**:
- 在处理非自动重新启动的任务时,如果任务已经通过 `exit_notify()` 并从 IRQ 调用 `handle_posix_cpu_timers()`,它可能会被其父进程或调试器立即收割。
- 如果此时并发运行 `posix_cpu_timer_del()`,则无法检测到 `timer->it.cpu.firing != 0`,导致 `cpu_timer_task_rcu()` 和/或 `lock_task_sighand()` 失败。
- **修复措施**:
- 在 `run_posix_cpu_timers()` 中添加对 `tsk->exit_state` 的检查,以确保在 `release_task(tsk)` 发生之前不会运行 `handle_posix_cpu_timers()`。
- 如果 `CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y`,则不需要此修复,因为 `exit_task_work()` 会在 `exit_notify()` 之前调用。
- **相关提交**: f90fffe152dedfb2932240ebbd67d83330eca
- **报告者**: Benoit Sevens <bsevens@google.com>
- **签名者**: Oleg Nesterov, Linus Torvalds, Greg Kroah-Hartman
标题: Making sure you're not a bot! -- 🔗来源链接
标签:
神龙速读:
从这个网页截图中,可以获取到以下关于漏洞的关键信息:
- **验证码加载问题**:页面显示“Loading...”,表明验证码可能没有正确加载或存在延迟。这可能是由于网络问题、服务器问题或验证码服务本身的问题。
- **安全防护提示**:页面提示“Making sure you're not a bot!”,说明该网站使用了反机器人验证机制来保护其内容和功能不被自动化工具滥用。
- **防护工具信息**:页面底部提到“Protected by Anubis from Techaro.”,表明该网站使用了名为Anubis的防护工具,由Techaro提供。这可能是一个用于检测和阻止恶意流量的安全解决方案。
- **制作和设计信息**:页面还提到了“Made with ❤️ in 🇨🇦”和“Mascot design by CELPHASE.”,这些信息虽然与漏洞直接相关性不大,但可以了解网站的制作背景和设计团队。
总结来说,关键信息集中在验证码加载问题和网站使用的安全防护工具上。
标题: Making sure you're not a bot! -- 🔗来源链接
标签:
神龙速读:
从这个网页截图中,可以获取到以下关于漏洞的关键信息:
- **验证码加载问题**:页面显示“Loading...”,表明验证码可能没有成功加载。这可能是由于网络问题、服务器问题或验证码服务本身的问题。
- **潜在的绕过风险**:如果验证码无法正常加载或显示,攻击者可能会尝试绕过这一验证步骤,从而增加被识别为机器人的风险。
- **保护措施**:页面底部提到“Protected by Anubis from Techaro”,说明该网站使用了Anubis和Techaro提供的安全防护措施。如果这些防护措施存在漏洞,可能会被利用。
- **用户体验问题**:验证码加载失败会影响用户体验,可能导致用户无法正常访问网站内容。
总结:
- 验证码加载失败
- 潜在的验证码绕过风险
- 使用Anubis和Techaro的安全防护措施
- 用户体验受影响
标题: 503 Service Temporarily Unavailable -- 🔗来源链接
标签:
神龙速读:
从这个网页截图中可以获取到以下关于漏洞的关键信息:
- **HTTP状态码**: 503 Service Temporarily Unavailable
- 表示服务器当前无法处理请求,可能是由于过载或维护。
- **Web服务器类型**: nginx
- 显示了使用的Web服务器软件是Nginx。
这些信息可以帮助进一步分析和诊断问题,例如检查Nginx配置、服务器负载情况或后端服务的健康状态。
标题: posix-cpu-timers: fix race between handle_posix_cpu_timers() and posix_cpu_timer_del() - kernel/git/stable/linux.git - Linux kernel stable tree -- 🔗来源链接
标签:
神龙速读:
### 关键信息
- **漏洞类型**: Race Condition
- **受影响的函数**: `handle_posix_cpu_timers()` 和 `posix_cpu_timer_del()`
- **问题描述**:
- 当一个非自重启任务已经通过 `exit_notify()` 并从 IRQ 调用 `handle_posix_cpu_timers()` 时,它可能会被其父进程或调试器立即收割。
- 如果此时并发运行 `posix_cpu_timer_del()`,它将无法检测到 `timer->it.cpu.firing != 0`,导致 `cpu_timer_task_rcu()` 和 `lock_task_sighand()` 失败。
- **修复措施**:
- 在 `run_posix_cpu_timers()` 中添加对 `tsk->exit_state` 的检查以解决此问题。
- 如果 `CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y`,则不需要此修复,因为 `exit_task_work()` 在 `exit_notify()` 之前调用。但该检查仍然有意义,因为 `task_work_add(&tsk->posix_cputimers_work.work)` 无论如何都会失败。
- **相关文件**: `kernel/time/posix-cpu-timers.c`
- **提交信息**:
- 作者: Oleg Nesterov <oleg@redhat.com>
- 提交者: Linus Torvalds <torvalds@linux-foundation.org>
- 提交时间: 2025-06-13 19:26:50 +0200
- 提交哈希: f90fffe152dedf52b932240ebbd670d83330eca
标题: Making sure you're not a bot! -- 🔗来源链接
标签:
神龙速读:
从这个网页截图中可以获取到以下关于漏洞的关键信息:
- **验证码加载问题**:页面显示“Loading...”,表明验证码可能没有正确加载或存在加载延迟,这可能是由于网络问题、服务器问题或验证码服务本身的问题。
- **安全防护提示**:页面提示“Making sure you're not a bot!”,说明该网站使用了反机器人验证机制,以防止自动化工具的恶意访问。
- **保护措施**:页面底部提到“Protected by Anubis from Techaro.”,表明该网站使用了名为Anubis的安全防护服务,由Techaro提供。
- **制作和设计信息**:页面还提到了“Made with ❤️ in 🇨🇦”和“Mascot design by CELPHASE.”,这些信息虽然与漏洞直接无关,但可以了解网站的制作背景和设计团队。
这些信息可以帮助分析网站的安全防护措施和潜在的加载问题。
标题: 503 Service Temporarily Unavailable -- 🔗来源链接
标签:
神龙速读:
从这个网页截图中可以获取到以下关于漏洞的关键信息:
- **HTTP状态码**: 503 Service Temporarily Unavailable
- 表示服务器当前无法处理请求,可能是由于过载或维护。
- **Web服务器类型**: nginx
- 显示了使用的Web服务器软件是Nginx。
这些信息可以帮助进一步分析和诊断问题,例如检查Nginx配置、服务器负载情况或后端服务的健康状态。
Zaproxy alias impedit expedita quisquam pariatur exercitationem. Nemo rerum eveniet dolores rem quia dignissimos.