【漏洞预警】linux内核漏洞(POC已公开)已有Android/ARM64的利用实现CVE-2026-98260"

admin 2026-10-24 10:49:25 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

【漏洞预警】linux内核漏洞(POC已公开)已有 Android/ARM64 的利用实现CVE-2026-98260

YGnight
YGnight

night安全

2026年10月20日 10:41
四川

去阅读

一、漏洞描述

CVE 编号 CVE-2026-98260
漏洞类型 POSIX CPU 定时器节点释放后重用,第三方漏洞库按 CWE-416 归类
受影响组件 fs/exec.c 的 begin\_new\_exec 与 kernel/time/posix-cpu-timers.c 的定时器清理逻辑,需开启 CONFIG\_POSIX\_TIMERS
引入提交 55e8c8eb2c7b,5.6-rc2 进入主线
修复提交 acb03d388181,7.3-rc3 之后进入主线
修复版本 主线 7.3 / 6.6.158 / 6.12.112 / 6.18.54 / 7.2.8
触发前提 多线程进程,非主线程持有已启动的 CLOCK\_THREAD\_CPUTIME\_ID 定时器,execve 在 de\_thread 之后的某一步失败
利用条件 本地执行权限,无需网络,无需用户交互,依赖信号打断可中断的锁,并推迟线程回收
危害面 回收时删除已释放节点造成内存破坏,公开实现把它做成写原语并改写 task 的 cred
CVSS 7.8,CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H,kernel.org CNA 口径;第三方另给 CVSS 4.0 的 6.8 分,只计可用性
EPSS 0.134%,分位 2.597%,FIRST 于 2026-10-19 更新
公开代码 已有 Android/ARM64 的利用实现,含竞态触发、堆布局、地址泄露与提权,偏移需从目标内核的 BTF 或符号表取得

二、漏洞原理

timer\_create 用 CLOCK\_THREAD\_CPUTIME\_ID 建出来的定时器,认的是线程自己的 pid。

启动之后,对象本身挂在进程 signal 的定时器链表里,里面那个节点排进对应线程的定时器队列。

队列归线程所有,对象有自己的引用计数,两头的寿命本来就不绑在一起。

公开的部分利用实现代码。

// timer\_lpe.c   触发线程一节的骨架
timer\_create(CLOCK\_THREAD\_CPUTIME\_ID, &ev, &timerid);   // 只盯当前这个线程
timer\_settime(timerid, 0, &one\_hour, NULL);            // 已启动,节点进了 B 的队列

execve(\"/proc/self/exe\", argv, envp);                  // B 不是线程组 leader

非主线程调 execve,内核第一步要把这个进程变成单线程。

de\_thread 清掉其他线程,接着用 exchange\_tids 把 leader 与当前线程的 pid 对调,最后把 leader 回收掉。

定时器手里的 pid 已经查不到任何活着的 task,节点却还留在 B 的队列上。

正常路径上,begin\_new\_exec 靠后本来安排了一段专门的清理,摘的就是这种残留节点。

麻烦出在它的位置。

point\_of\_no\_return 在 de\_thread 之前就置上了。

unshare\_files、set\_mm\_exe\_file、exec\_mmap、exec\_task\_namespaces 这几步里任何一个失败,任务直接转向 do\_exit,够不到后面那段清理。

// fs/exec.c   v7.3-rc2   修复前
bprm->point\_of\_no\_return = true;      // 1149 之后出错一律致命
retval = de\_thread(me);               // 1152 换 TID、回收 leader
if (retval)
    goto out;

retval = exec\_task\_namespaces();      // 1191 这里的失败会跳到 out\_unlock
if (retval)
    goto out\_unlock;

spin\_lock\_irq(&me->sighand->siglock);
posix\_cpu\_timers\_exit(me);            // 1197 节点本来在这里摘
spin\_unlock\_irq(&me->sighand->siglock);
exit\_itimers(me);
flush\_itimer\_signals();

这时候 B 成了最后活着的线程,do\_exit 走到 exit\_itimers,逐个删定时器。

删除前要先拿 pid 换出那个 task。换不出来的时候,内核的处理是打一条警告、认定节点已经不在队列里,摘节点的动作整段跳过。

调用方看到的返回值仍然是成功,于是顺着往下把对象释放了。

// kernel/time/posix-cpu-timers.c   v7.3-rc2   修复前
// timer\_lock\_sighand 查不到 task 时
t = pid\_task(timer->it.cpu.pid, type);
if (!t)
    break;                                    // 直接走人
smp\_rmb();
WARN\_ON\_ONCE(ctmr->head || timerqueue\_node\_queued(&ctmr->node));
return NULL;

// posix\_cpu\_timer\_del
p = timer\_lock\_sighand(timer, &flags);
if (likely(p)) {
    disarm\_timer(timer, p);                    // 只有查到 task 才摘节点
    unlock\_task\_sighand(p, &flags);
}
if (!ret) {
    put\_pid(timer->it.cpu.pid);
    timer->it\_status = POSIX\_TIMER\_DISARMED;   // 对外仍是删除成功
}

// cleanup\_timerqueue   回收时每一趟都要跑
while ((node = timerqueue\_getnext(head))) {
    timerqueue\_del(head, node);                // node 落在已释放的对象里
    ctmr = container\_of(node, struct cpu\_timer, node);
    ctmr->head = NULL;
}

B 的 task\_struct 还没回收,队列的根还在,节点也没走,三个条件同时成立。

父进程一回收,内核顺着这条队列删除最靠前的节点,删的同时会读写它两侧的红黑树字段。这格子要是已经分给了别的对象,这些读写就砸在别人身上。

公开实现的做法是把这处悬空引用加工成一次写入。

先用 io\_setup 建大量 AIO 环形缓冲区占住内核页面,再用 mremap 把页面搬到确定位置。

被释放的那个槽位所在的物理页因此也对上了用户态,伪造的 cred、定时器与命名空间摆在用户页里,等内核的下一次写入落到 task 的 cred 上面。

整套流程的成功率取决于堆布局和那台机器的加固情况,偏移也必须逐个内核去填,公开实现本身没有给出适用机型清单。

三、修复建议

主线升到7.3,长期维护的四条分支分别升到6.6.158、6.12.112、6.18.54、7.2.8

近期值得重点关注的漏洞预警

【紧急漏洞预警】nacos爆出权限绕过漏洞,可以创建管理员账户,经过分析有点出处(已复现,exp脚本已编写)

【漏洞预警】Next.js爆出RCE漏洞(POC已公开)CVE-2026-96889

【漏洞预警】Nextcloud 已有服务器被写入后门

【紧急漏洞预警】GitLab整数溢出导致RCE漏洞(POC已公开)

【漏洞预警】AnyDesk Linux存在堆缓冲区溢出漏洞(POC已公开)

【漏洞预警】macOS爆出路径穿越漏洞CVE-2026-84568(POC已公开)

PostgreSQL爆出远程代码执行漏洞(POC已公开)

【漏洞预警】Atlassian八款产品爆任意文件读取漏洞(附POC)

【漏洞预警】Joomla视频画廊扩展存在SQL注入漏洞(POC已公开)

【漏洞预警】Roundcube网页邮件客户端存在SQL注入漏洞(附POC)

WordPress页面模板存在文件包含漏洞(POC已公开)CVE-2026-87902

WordPress插件Forminator未认证短代码执行漏洞(poc已公开)CVE-2026-92229

WordPress插件Authorizer存在权限提升漏洞(POC已公开)CVE-2026-81294

WordPress插件MStoreAPI存在认证绕过漏洞(POC已公开)CVE-2026-13447

CakePHP爆出SQL注入漏洞(POC已公开)CVE-2026-77635

Node.js模块proxy-addr爆出严重漏洞CVE-2026-90711

Langflow爆出代码执行漏洞CVE-2026-17633  (POC已公开)

Apache CVE-2026-42536,补它只用一行,洞龄十四年

【紧急】搜狗输入法爆出远程代码执行漏洞CVE-2026-51990  ,已被在野利用

【紧急】无需登录就能获取 GitLab 的任意文件数据(附POC)

【紧急】JumpServer堡垒机被公布Access Key泄露漏洞,可以实现提权

Spring Cloud Azure公布严重漏洞 无需任何权限即可取得登录会话

【漏洞POC已公开】Linux RDS 爆出提权漏洞 一块内存放两次,root就到手了

Tenda光猫爆出严重漏洞,目前无补丁(POC已公布

13 行补丁,堵住Linux能拿 root 的内核洞(EXP已公开)

48 字节,换走一台 Windows 的 SYSTEM(CVE-2026-62735漏洞POC已公开)

【漏洞预警】linux删个网桥就能提权root?目前没有补丁(POC已公开)

【漏洞预警】Linux三年前补上的洞,又一次被挖开了

【情报】支付宝8.2亿数据泄露?给同事说一声,别自己吓自己

【漏洞预警】自己注册个号,就能搬空别人的 Magento 订单和支付卡(POC已公开)

【漏洞预警】Next.js 爆出新漏洞,不用登录实现命令执行(POC已公开)

【漏洞补丁绕过预警】Redis CVE-2026-23479变种高危漏洞,EXP已公开

【漏洞补丁绕过】超 30 万 WordPress 站点受影响,Forminator 文件上传漏洞(附POC)

【漏洞预警】Exchange爆出RCE漏洞,利用Exchange 帮另一台 Exchange 开门(POC已公开)

【漏洞预警】不用登录,一个请求就能让 GeoServer 乖乖执行命令(POC已公开)

【漏洞预警】Keycloak不登录就能接管任意账户,双重验证也拦不住

【漏洞预警】 8月WebLogic公布了9个漏洞,有一个需要重点关注

【漏洞预警】近期MongoDB 公布了5个漏洞,最严重的一个可以不认证、远程就能拿下你电脑

【0DAY漏洞】 全球5G手机芯片厂商之一‌的紫光展锐SOC存在RCE漏洞,影响数十家手机厂商,还未发布补丁

【漏洞告警】安卓 14 到 16 全中招,通讯录 SQL 注入漏洞正在抄家(POC已公开)

【漏洞预警】紧急排查,SMB服务再曝新漏洞,利用脚本已公开

【漏洞预警】不用输密码,对方已经接管你的Mac:官方补丁公布macOS存在未鉴权RCE漏洞

【0day漏洞预警】MariaDB 13 爆 9.8 分 RCE 链:最低 USAGE 权限就能远程执行命令

VMware 爆 5 个洞,两个 9.8 不用密码就能打穿 vCente

DebianDSA-6528-1(内核)上百个漏洞" 网络安全文章

DebianDSA-6528-1(内核)上百个漏洞"

Debian发布DSA-6528-1安全公告,修复Linux内核中上百个漏洞,涉及权限提升、拒绝服务及信息泄露等风险。稳定版trixie已在6.12.111-1版本中修复。建议用户立即升级linux软件包,并关注官方安全跟踪页面获取详细状态。
评论:0   参与:  0