【风险提示】天融信关于LinuxKernel本地权限提升漏洞CVE-2026-46242(BadEpoll)的风险提示

admin 2026-07-06 04:43:51 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 天融信阿尔法实验室发布关于LinuxKernel本地权限提升漏洞CVE-2026-46242(BadEpoll)的风险提示。该漏洞是eventpoll子系统的条件竞争导致释放后重用UAF,成功利用可获root权限,影响桌面版、服务器版及安卓设备。漏洞细节与Exp已公开,建议受影响用户立即升级LinuxKernel至包含补丁的安全版本。 综合评分: 85 文章分类: 漏洞分析,应急响应


cover_image

【风险提示】天融信关于Linux Kernel本地权限提升漏洞CVE-2026-46242(Bad Epoll)的风险提示

天融信应急响应 天融信应急响应

天融信阿尔法实验室

2026年7月4日 23:29 北京

在小说阅读器读本章

去阅读

0x00 背景介绍


近日,天融信阿尔法实验室监测到Linux Kernel主线修复了一个本地权限提升漏洞CVE-2026-46242(Bad Epoll)。成功利用该漏洞不仅可以在Linux桌面版和服务器版上获取root权限,还可以在安卓设备上获取root权限,且可以在Chrome渲染器的沙箱内触发,所以该漏洞的影响较大,这是由于大多数Linux本地提权漏洞无法在安卓内核中进行利用,也无法在Chrome渲染器的沙箱内触发。当前,此漏洞的细节及Exp已经公开,部分主流Linux发行版已发布针对该问题的补丁或更新,因此,请受影响用户立即根据修复建议对该漏洞进行防御。

0x01 漏洞描述


Linux内核是一个开源、宏内核但支持动态模块加载的操作系统核心,负责管理硬件资源并为上层软件提供运行环境。它通过进程调度、内存管理、虚拟文件系统、网络协议栈和设备驱动等关键子系统,实现对CPU、内存、磁盘及外设的抽象与调度,并提供稳定、安全和高效的接口供应用程序使用。凭借高可移植性、丰富的驱动支持和强大的社区协作,其已成为从嵌入式设备到超级计算机、从安卓系统到云服务器广泛采用的基础核心。

CVE-2026-46242(Bad Epoll)是Linux Kernel eventpoll子系统的一个条件竞争导致的释放后重用UAF漏洞。成功利用该漏洞的本地攻击者可以获取目标系统的root权限。当一个eventpoll文件描述符监视另一个eventpoll文件描述符时,同时关闭这两个文件描述符会触发fs/eventpoll.c中的条件竞争漏洞。当__ep_remove()函数执行WRITE_ONCE(file->f_ep, NULL)时,对同一目标文件并发的__fput()操作会在eventpoll_release()函数的无锁快速路径上检测到f_ep==NULL,从而跳过执行eventpoll_release_file()函数,直接释放目标的eventpoll和file对象。__ep_remove()会继续通过指针写入这些已释放的对象,导致释放后重用UAF漏洞。

虽然该漏洞的竞争窗口仅有6条指令左右,通常的尝试几乎不可能赢得竞争条件,但漏洞利用可以扩大竞争窗口,并运行一个永远不会导致内核崩溃的重试循环,使漏洞利用成功率达到99%。

利用条件:

1、Capabilities:不需要

2、内核配置:CONFIG_EPOLL

3、是否需要用户命名空间:否

0x02 漏洞根本原因分析


epoll是Linux的I/O事件多路复用机制,允许单个程序同时监视大量文件描述符与网络连接。Nginx、Node.js、Chrome等几乎所有现代服务与浏览器都依赖它,且无法关闭。Bad Epoll的本质是内核中两条对象清理路径并发执行时引发的条件竞争:一条路径已将某内核对象释放,另一条路径仍在向其写入,从而导致释放后重用(UAF)。

该漏洞的触发过程如下所示。

上图创建了两个epoll文件描述符ep_waiter和ep_target,其中ep_waiter监视ep_target。对于每个文件描述符ep_X,epoll_X 是其结构体eventpoll,file_X是其结构体file。

线程B释放了两个对象epoll_target和file_target,而线程A的__ep_remove()函数仍然引用它们,因此,条件竞争导致了两次不同的释放后重用UAF。

[1]处是对结构体file的静默UAF,epi->ffd.file持有目标file,但其f_count始终未增加,因此,__ep_remove()会持续操作已释放(可能已被回收)的file_target,同时持有其f_lock。is_file_epoll(file)读取的结果即为UAF读取。如果释放的file立即被回收为非事件轮询文件[0],则free_ephead()会将 &epoll_target->refs释放到错误的缓存(kmalloc-192)中,导致无效释放[3]。

[2]处是对结构体eventpoll的UAF(在偏移量160字节处写入 0,在kmalloc-192中分配)。hlist_del_rcu(&epi->fllink)通过悬空的epi->fllink.pprev写入*pprev=0,该指针指向已释放的&epoll_target->refs(已释放的eventpoll对象内部160字节处)。

Linux Kernel对此漏洞的补丁如下所示。

在ep_remove()的开头,通过epi_fget()锁定@file,并在锁定成功时触发临界区。由于锁定成功,@file无法达到引用计数为零,从而阻止__fput()的执行,并间接地保持被监视的struct eventpoll在hlist_del_rcu()和f_lock使用期间处于活动状态,最终关闭两个UAF。

0x03 漏洞编号


CVE-2026-46242

0x04 漏洞等级


高危

0x05 受影响版本


受影响的Linux内核版本:

58c9b016e128 <= Linux Kernel Commit < a6dc643c693

已知受影响的发行版:

Red Hat Enterprise Linux 10

Red Hat Enterprise Linux 9

Ubuntu 24.04 LTS

Ubuntu 25.10

Ubuntu 26.04 LTS

Debian 13 (Trixie)

Debian 14 (Forky)

已知的安卓设备影响范围:

Google Pixel 10(Linux内核版本6.6及以上):受影响。

Google Pixel 8和其他基于Linux内核6.1的设备:不受影响,因为该漏洞在Linux内核6.4中引入。

0x06 修复建议


Linux Kernel已发布正式补丁,建议受影响用户尽快将Linux Kernel升级到包含补丁的安全版本。

官方补丁链接:

https://git.kernel.org/stable/c/a6dc643c69311677c574a0f17a3f4d66a5f3744b

各个Linux发行版漏洞公告链接:

Debian:https://security-tracker.debian.org/tracker/CVE-2026-46242

Ubuntu:https://ubuntu.com/security/CVE-2026-46242

Red Hat:https://access.redhat.com/security/cve/cve-2026-46242

由于Linux Kernel的epoll子系统操作系统、网络服务和浏览器都依赖的核心内核功能,无法像Copy Fail及其变种漏洞那样通过卸载受攻击的模块来进行临时缓解,修复此漏洞的唯一方法就是应用补丁,将Linux Kernel升级至安全版本。

0x07 声明


天融信阿尔法实验室拥有对此公告的修改和解释权,如欲转载,必须保证此公告的完整性。由于传播、利用此公告而造成的任何后果,均由使用者本人负责,天融信阿尔法实验室不为此承担任何责任。

天融信阿尔法实验室成立于2011年,一直以来,阿尔法实验室秉承“攻防一体”的理念,汇聚众多专业技术研究人员,从事攻防技术研究,在安全领域前瞻性技术研究方向上不断前行。作为天融信的安全产品和服务支撑团队,阿尔法实验室精湛的专业技术水平、丰富的排异经验,为天融信产品的研发和升级、承担国家重大安全项目和客户服务提供强有力的技术支撑。

天融信

阿尔法实验室

长按二维码关注我们


免责声明:

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

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

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

本文转载自:天融信阿尔法实验室 天融信应急响应 天融信应急响应《【风险提示】天融信关于Linux Kernel本地权限提升漏洞CVE-2026-46242(Bad Epoll)的风险提示》

评论:0   参与:  0