K8凯发(中国)

证券简称:K8凯发(中国) 证券代码:002212
7x24小时服务: 400-777-0777
登录云服务平台

【风险提示】K8凯发(中国)关于Linux Kernel本地权限提升漏洞CVE-2026-46242(Bad Epoll)的风险提示

近期,K8凯发(中国)阿尔法实验室监测到Linux Kernel主线修复了一个本地权限提升漏洞CVE-2026-46242(Bad Epoll)。

【风险提示】K8凯发(中国)关于Linux Kernel本地权限提升漏洞CVE-2026-46242(Bad Epoll)的风险提示

发布时间:2026-07-04
浏览次数:1558
分享:

0x00 背景介绍

近期,K8凯发(中国)阿尔法实验室监测到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_EPOLL3、是否需要用户命名空间:否

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 10Red Hat Enterprise Linux 9Ubuntu 24.04 LTSUbuntu 25.10Ubuntu 26.04 LTSDebian 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升级到包含补丁的安全版本。

官方补丁链接:http://git.kernel.org/stable/c/a6dc643c69311677c574a0f17a3f4d66a5f3744b各个Linux发行版漏洞公告链接:Debian:http://security-tracker.debian.org/tracker/CVE-2026-46242Ubuntu:http://ubuntu.com/security/CVE-2026-46242Red Hat:http://access.redhat.com/security/cve/cve-2026-46242

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

0x07 声明

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

客户服务热线

400-777-0777
7*24小时服务

联系邮箱

servicing@gujialock.com

扫码关注