Aviral2642/kernel-nday-exploits

GitHub: Aviral2642/kernel-nday-exploits

针对已修复 Linux 内核 CVE 的本地权限提升 PoC 研究项目,提供从补丁分析、根因定位到完整利用链推演的深度技术文档。

Stars: 0 | Forks: 0

# Linux 内核 N-Day 漏洞利用 **针对已修复 Linux 内核漏洞的本地权限提升研究** 补丁逆向分析 · 根因分析 · 漏洞利用开发 [![CVEs](https://img.shields.io/badge/CVEs-5-a855f7?style=for-the-badge&labelColor=030108)](#the-exploits) [![Class](https://img.shields.io/badge/class-use--after--free-22d3ee?style=for-the-badge&labelColor=030108)](#the-exploits) [![Kernels](https://img.shields.io/badge/kernels-3.8%20→%206.19-f59e0b?style=for-the-badge&labelColor=030108)](#the-exploits) [![Scope](https://img.shields.io/badge/scope-PoC%20only-22c55e?style=for-the-badge&labelColor=030108)](#scope) [**渲染后的索引 →**](https://www.aviralsrivastava.tech/exploits/) · [aviralsrivastava.tech](https://www.aviralsrivastava.tech)
## 漏洞利用 | CVE | 子系统 | 类型 | 受影响的内核 | CVSS | 上游修复 | |---|---|---|---|---|---| | [CVE-2026-23231](CVE-2026-23231/) | `nf_tables` | RCU use-after-free | 3.16 – 6.19.3 | 7.8 | [`71e99ee2`](https://git.kernel.org/stable/c/71e99ee20fc3f662555118cf1159443250647533) | | [CVE-2026-22999](CVE-2026-22999/) | QFQ scheduler | use-after-free → double free | 3.8 – 6.18.6 | 5.5 | [`3879cffd`](https://git.kernel.org/stable/c/3879cffd9d07aa0377c4b8835c4f64b4fb24ac78) | | [CVE-2025-40271](CVE-2025-40271/) | procfs | rb-tree use-after-free | ~3.14 – 6.18-rc5 | — | 见分析报告 | | [CVE-2025-38236](CVE-2025-38236/) | AF_UNIX `MSG_OOB` | use-after-free | 6.9 – 6.15.4 | — | 见分析报告 | | [CVE-2025-38106](CVE-2025-38106/) | `io_uring` sqpoll | use-after-free info leak | 6.9 – 6.15.2 | — | 见分析报告 | 每个目录都包含 `exploit.c` 以及背后的分析。 ### CVE-2026-23231 — nf_tables RCU use-after-free `nf_tables_addchain()` 使用 `list_add_tail_rcu()` 将新链发布到表的链表中,这发生在注册其 hooks *之前*。当 `nf_tables_register_hook()` 失败时,错误路径会调用 `nft_chain_del()` 并销毁该链,且中间没有介入 `synchronize_rcu()`。并发的 RCU 读者仍然持有它。 跨越十二年的内核,可由非特权用户命名空间触达。 命名空间设置 → nftables 基础设施 → 在 cgroup v2 内存压力下强制 hook 注册失败 → 使用 `msg_msg` 喷射已释放的 kmalloc-256 槽位 → 通过与 `nf_tables_dump_chains()` 竞争来泄露内核地址 → 覆盖 `modprobe_path` → 触发 helper。 ### CVE-2026-22999 — QFQ scheduler use-after-free `qfq_change_class()` 在类创建和类修改之间共享同一个 `destroy_class` 错误标签。当聚合分配失败时修改现有类,会在该类仍然链接在调度器哈希表中时将其释放。随后的删除路径会再次释放它。 NVD 将此评为拒绝服务。这实际上是权限提升。 为获取 `CAP_NET_ADMIN` 设置命名空间 → 通过 netlink 设置 QFQ qdisc 和类 → 内存压力 → 类更改时的 UAF → 跨 CPU double free 以绕过 SLUB freelist 加固 → 重叠的 `msg_msg` 对象 → 泄露 → `modprobe_path` → root。 ## 缓解措施 两个 2026 年的漏洞利用都采用了纯数据路线,这正是它们在现代内核上仍然可行的原因:由于没有控制流劫持,kCFI 和 SMEP 根本不会介入。 | | KASLR | SMEP | SMAP | kCFI | SLUB hardening | |---|---|---|---|---|---| | CVE-2026-23231 | 绕过 | n/a | n/a | n/a | 影响极小 | | CVE-2026-22999 | 绕过 | n/a | n/a | n/a | 绕过 | `n/a` 表示该技术完全不需要绕过它,而不是指缺少该缓解措施。 ## 厂商补丁状态 这五个漏洞均已在上游修复。发行版的覆盖情况参差不齐,差距在此列出,而不是留给您自己去发现。 **CVE-2026-23231** — Ubuntu 已修复 ([USN-8244-1](https://ubuntu.com/security/notices/USN-8244-1)) · Debian 已修复 ([DLA-4561-1](https://security-tracker.debian.org/tracker/DLA-4561-1)) · RHEL 10 和 RHEL 7 ELS 已修复 · **RHEL 9 受影响,尚未发布厂商修复** **CVE-2026-22999** — Debian 已修复 ([DLA-4475-1](https://security-tracker.debian.org/tracker/DLA-4475-1)) · Ubuntu 部分修复 (jammy, [USN-8162-1](https://ubuntu.com/security/notices/USN-8162-1)) · RHEL 9 和 10 不受影响 · **RHEL 8 和 RHEL 7 ELS 受影响,尚未发布厂商修复** 距离上游修复已经过去 193 天 如果您运行的是 RHEL 8 或 RHEL 9,相关的 bug 在您的系统上仍未修补,而本存储库包含针对它的漏洞利用代码。一个已经在上游存在了半年却仍未到达受支持的企业版本的修复,从运行它的人的角度来看,并不是一个已修复的 bug。 ## 范围 仅为 PoC。每个漏洞利用演示 `uid=0` 后即停止。没有持久化,没有横向移动,没有载荷投递,没有网络回调,没有反取证。 每个漏洞利用都会检查正在运行的内核版本,并在已修复的内核上拒绝执行。 ## 编译 ``` gcc -Wall -Wextra -static -o exploit exploit.c -lpthread ``` x86_64 Linux。请在一次性虚拟机中运行。 ## 方法 每个目录都包含了研究工作,而不仅仅是 payload: **`patch-analysis.md`** — 上游 diff、补丁前后的代码路径,以及通往 bug 的 syscall 路由。 **`root-cause.md`** — bug 分类、原语、它所在的 slab cache、喷射候选者,以及每个缓解措施对该方法的影响。 **`exploit-strategy.md`** — 逐步的利用链:设置、触发、重新分配、泄露、提权、清理。 分析才是持久的部分。随着内核的演进,漏洞利用会过时。但关于为什么补丁不完整,或者分配器可以被如何引导的推理不会过时。 ## 法律与意图 发布用于防御性研究、检测工程和漏洞利用开发教育。 所有五个漏洞都是公开的,并在上游得到了修复。 仅在您拥有或获得明确授权测试的系统上运行这些内容。在大多数司法管辖区,未经授权访问计算机系统是刑事犯罪。您对使用此代码的行为自行负责。 欢迎对分析进行纠正。请提交 issue。 ## 许可证 MIT — 见 [LICENSE](LICENSE)。
**Aviral Srivastava** — 安全研究员,AI/ML 基础设施与 Linux 内核 CVE-2026-33017 (Langflow, CISA KEV) · CVE-2026-53923 (vLLM) · CVE-2026-32628 (AnythingLLM) 2026 Pwnie Award 提名,最佳服务器端 / 云端 Bug [aviralsrivastava.tech](https://www.aviralsrivastava.tech) · [ORCID](https://orcid.org/0000-0002-6724-4662) · [LinkedIn](https://linkedin.com/in/aviralsrivastava23)
标签:Linux内核, PoC, UAF, Web报告查看器, 安全渗透, 客户端加密, 暴力破解, 本地提权, 漏洞分析, 路径探测