AI漏掉的Linux内核提权漏洞,普通用户也能拿到Root权限,Android手机也受影响

admin 2026-07-09 06:33:45 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文详细解析Linux内核提权漏洞BadEpoll。该漏洞源于epoll子系统两条清理路径的竞态条件导致的Use-After-Free问题,允许无特权本地用户获取root权限。因epoll为不可卸载的核心机制,此漏洞同时影响Linux服务器与Android手机。尽管触发窗口极窄,研究者仍通过跨cache攻击与ROP链实现了高成功率利用。目前POC已公开,建议受影响环境尽快安装官方补丁以规避风险。 综合评分: 86 文章分类: 漏洞分析,二进制安全,漏洞POC,漏洞预警,AI安全


cover_image

AI漏掉的Linux内核提权漏洞,普通用户也能拿到Root权限,Android手机也受影响

原创

suntiger suntiger

二进制空间安全

2026年7月6日 08:30 北京

在小说阅读器读本章

去阅读

将二进制空间安全设为”星标⭐️”

第一时间收到文章更新

漏洞背景

#

2026年7月初,安全圈又迎来一枚Bad 系列内核漏洞:Bad Epoll

它允许没有任何特权的本地用户,通过Linux内核 epoll 子系统里一个极窄的竞态窗口,把权限一路提升到root。受影响的不只是传统 Linux 服务器,还包括Android手机,而这一点,恰恰是多数Linux本地提权漏洞做不到的。而Anthropic的前沿AI模型Mythos曾在同一段epoll代码里挖出了另一个竞态漏洞(CVE-2026-43074),却漏掉了 Bad Epoll

epoll是什么?为什么关不掉?

在Linux里,epoll 是一种高效 I/O多路复用机制:一个进程可以同时监听成百上千个文件描述符,包括:网络连接、管道、定时器等,哪个就绪就处理哪个。基础工作原理模型如下:

┌─────────────┐     epoll_wait()      ┌──────────────────┐│  Nginx/Chrome│ ◄──────────────────► │  内核 epoll 子系统 ││  Node.js/Go  │     epoll_ctl()      │  (fs/eventpoll.c) │└─────────────┘     epoll_create()     └──────────────────┘

如Nginx、Chrome、Node.js、Android系统服务,几乎所有高并发程序都依赖 epoll。最麻烦的地方是它并不是一个可卸载的内核模块,因此没有一键关闭的解决方案。唯一的解决方案是等待补丁发布。

epoll竞态漏洞原理

Bad Epoll的本质, 是一个经典的Use-After-Free竞态问题:两条内核清理路径同时操作同一个对象,一条把内存释放了,另一条还在往这块内存里写。漏洞原理如下图:

漏洞形成过程遵循如下步骤:

  1. ep_remove() 在 file->f_lock 保护下清空了 file->f_ep,但随后仍在临界区内继续使用 is_file_epoll()hlist_del_rcu() 等操作)。
  2. 与此同时,并发的 __fput() 走 eventpoll_release() 快速路径,看到 transient NULL 后跳过了eventpoll_release_file(),直接执行 f_op->release / file_free()
  3. epoll监听epoll(epoll-watches-epoll)时,f_op->release 会触发 ep_eventpoll_release() → ep_clear_and_put() → ep_free()提前 kfree 了被监听的 struct eventpoll
  4. 被释放对象的 ->refs hlist 头,恰好是 epi->fllink.pprev 指向的位置。随后 ep_remove() 里的 hlist_del_rcu() 执行 "*pprev = next"往已释放的 kmalloc-192内存里写入8字节,这就是攻击者可控的 UAF 写。
  5. 由于 struct file 标记为 SLAB_TYPESAFE_BY_RCU,同一块内存还可能被 alloc_empty_file() 回收复用,导致攻击者可控的跨cache释放,进一步放大危害。

两条清理路径真正”撞车”的地方,大约只有6条机器指令宽,随机触发几乎不可能成功, 这也是AI和人类都极难发现它的原因之一。

该漏洞的研究者通过精密的exploit设计,将极窄的窗口变成了99%成功率的稳定攻击。以下是完整的权限提升利用链:

权限提升攻击链过程如下:

(1).布局:创建4个epoll对象,分成2对,一对触发竞态,一对成为受害者。

(2).触发UAF:同时关闭关联epoll,驱动竞态,获得8字节可控写。

(3).升级UAF:跨cache攻击,污染file对象,完全控制 file 结构体内容。

(4).任意读:通过/proc/self/fdinfo读取任意内核内存。

(5).提权:利用ROP链劫持控制流,获取root shell。

完整的exploit代码和POC已公开:

Exploit Wirteup:

https://github.com/J-jaeyoung/security-research/blob/submit-cve-2026-46242/pocs/linux/kernelctf/CVE-2026-46242_lts_cos/docs/exploit.md

POC源码:

https://github.com/J-jaeyoung/security-research/blob/submit-cve-2026-46242/pocs/linux/kernelctf/CVE-2026-46242_lts_cos/exploit/lts-6.12.67/exploit.cpp

以下是漏洞时间线参考:

(全文完)


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:二进制空间安全 suntiger suntiger《AI漏掉的Linux内核提权漏洞,普通用户也能拿到Root权限,Android手机也受影响》

评论:0   参与:  0