Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
chronomaly — 针对CVE-2025-38352的Android内核漏洞利用,此前已在野外被利用。针对易受攻击的x86_64 Linux内核v5.10.x。 | Kitploit
工具/GitHubGitHub/farazsth98/chronomaly
Android安全漏洞分析漏洞利用论文与研究学习与教育二进制利用
GitHubfarazsth98/chronomaly

chronomaly

针对CVE-2025-38352的Android内核漏洞利用,此前已在野外被利用。针对易受攻击的x86_64 Linux内核v5.10.x。

查看仓库
310487个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Chronomaly

Chronomaly 是一个利用 CVE-2025-38352 的 Android/Linux 内核漏洞利用程序。该漏洞利用专门针对 Linux 内核 v5.10.157 编写,但由于不需要任何特定内核文本偏移量,它应适用于所有有漏洞的 v5.10.x 内核。

我在一个三部分的博客系列文章中详细介绍了该漏洞,从 PoC 一直讲到漏洞利用:

  • 第一部分 - Android 内核漏洞分析与 PoC(野外)
  • 第二部分 - 在没有内核补丁的情况下扩展竞态窗口
  • 第三部分 - 揭示 Chronomaly

demo

构建设置

该漏洞利用仅在 QEMU 中运行的 x86_64 Linux 内核 v5.10.157 上测试过。我请一位朋友给我发送了他们 Pixel 6a 的内核配置,以此为基础配置我的内核。以下是该漏洞利用所需的关键内核配置选项(我从 kernelCTF 配置开始):

  • CONFIG_POSIX_CPU_TIMERS_TASK_WORK=n
  • CONFIG_PREEMPT=y(完全抢占,非 RT)
  • CONFIG_SLAB_MERGE_DEFAULT=n
  • DEBUG_LIST=n
  • BUG_ON_DATA_CORRUPTION=n
  • LIST_HARDENED=n

要禁用 CONFIG_POSIX_CPU_TIMERS_TASK_WORK,您可以按照我第一篇博客文章中此处的步骤操作。

关于我的 QEMU 运行脚本,请参考 qemu.sh 文件。测试时我使用了 4 个内核和 3 GB RAM。

你需要更改的漏洞利用参数

由于漏洞利用依赖于 CPU 定时器,你可能需要更改两个参数以适应你的环境。

CPU_USAGE_THRESHOLD

该参数用于在 race_func() 内消耗 CPU 时间来触发定时器。必须将其设置为:

  • 定时器不会在每次重试尝试时都触发(如果定时器在 race_func() 线程退出之前就触发了,说明 CPU_USAGE_THRESHOLD 太高)。
  • 定时器仅有时触发(这意味着有时定时器在线程退出之前触发,有时在线程退出时触发)。

要判断定时器是否触发,可以在 free_func() 的 SIGUSR1 轮询代码中插入一个 printf() 语句。如果你看到消息打印出来,说明定时器触发了。

如果设置正确,你会在终端中开始看到 "Parent raced too late / too early"(父进程竞态太晚/太早)的消息。

PARENT_SETTIME_DELAY_US

PARENT_SETTIME_DELAY_US。父进程使用此参数来与子进程同时命中 send_sigqueue() 中的第二个竞态窗口。运行漏洞利用程序,观察并根据以下情况修改:

  • 如果 "Parent raced too late, readjusting..."(父进程竞态太晚,正在重新调整...)消息出现过于频繁——请减小该参数。
  • 如果 "Parent raced too early, readjusting..."(父进程竞态太早,正在重新调整...)消息出现过于频繁——请增大该参数。

理想情况下,你应该看到 "raced too late" 和 "raced too early" 都打印出来,漏洞利用程序将在一分钟内生效。如果你只看到其中一种出现频率远高于另一种,请相应调整。

潜在的改进

在我的跨缓存实现中,我假设内核不是太繁忙,并且没有太多的 struct sigqueue 分配。我在 sigqueue_crosscache_preallocs() 中添加了一条注释,解释了改进所需的操作。

如果内核非常繁忙,或者在某些每 CPU / 每节点 partial 列表中已经存在一些 struct sigqueue slab 页面,那么 exploit.c 中当前的跨缓存实现将会失败,并且 uaf_sigqueue / realloc_sigqueue 将无法重新分配为管道缓冲区数据页面。

我特意选择不在繁忙内核中实现跨缓存,以免漏洞利用被滥用 :)

问题

如果你有任何问题,请通过 X / Twitter 联系我!

下载工具