MUHAMMADHARIS1144/dirtyfrag-cve-2026

GitHub: MUHAMMADHARIS1144/dirtyfrag-cve-2026

DirtyFrag 是利用 Linux 内核网络子系统 ESP 和 rxkad 原位解密缺陷实现 page cache 破坏与本地权限提升的概念验证代码集合。

Stars: 0 | Forks: 0

# DirtyFrag 漏洞利用 通过 Linux 内核网络子系统中的 page cache 破坏实现本地权限提升。 ## CVE-2026-43284 (XFRM/ESP) **目标:** `/usr/bin/su` 利用 `net/ipv4/esp4.c::esp_input()` 中的原位解密,结合 `splice()`,使用一个极简的 192 字节 x86_64 root shell ELF 破坏 `/usr/bin/su` 二进制文件。 **机制:** - 通过 netlink 创建带有精心构造密钥的 XFRM SA - 开启在 4500 端口上具有 ESP 封装的 UDP socket - 使用 `vmsplice()` + `splice()` 将解密输出重定向到 su 的 page cache - 每次 splice 写入 4 字节;payload 分散在 40 多个 SA 中 - 破坏完成后,执行被篡改的 su,从而落入 root shell **编译与运行:** ``` gcc -o cve-2026-43284 CVE-2026-43284.c ./cve-2026-43284 ``` **环境变量:** - `DIRTYFRAG_VERBOSE=1` — 启用日志记录 - `DIRTYFRAG_CORRUPT_ONLY=1` — 仅破坏 su,不执行它 ## CVE-2026-43500 (rxrpc/rxkad) **目标:** `/etc/passwd` 利用 `net/rxrpc/rxkad.c::rxkad_verify_packet_1()` 中 `pcbc(fcrypt)` 的原位解密,结合 `splice()` 破坏 `/etc/passwd`,将 root 的条目设置为 `root::0:0`(空密码)。 **机制:** - **阶段 1:** 离线暴力破解 3 个 fcrypt 密钥,用于将 `/etc/passwd` 数据块解密为目标 payload - K_A:将前 8 字节解密为 `"::"`(空用户名/密码) - K_B:将接下来的 8 字节解密为 `"0:"`(UID) - K_C:将接下来的 8 字节解密为 `"0:GGGGGG:"`(GID + 填充) - **阶段 2:** 内核通过 rxrpc socket 触发 - 对于每个密钥,创建具有匹配会话密钥的 rxrpc 连接 - 构造带有恶意 rxkad header 的 DATA 数据包 - 使用 `splice()` 将 payload 注入到内核的验证路径中 - 在 page cache 上触发原位 PCBC 解密 - **阶段 3:** 自动启动 `su` 并响应空密码提示 **编译与运行:** ``` gcc -o cve-2026-43500 CVE-2026-43500.c ./cve-2026-43500 ``` **环境变量:** - `POC_TARGET_FILE=/path/to/file` — 目标文件(默认:`/etc/passwd`) - `POC_NO_UNSHARE=1` — 跳过 user/network namespace 设置 - `POC_UNSHARE=1` — 强制 namespace 设置 - `LPE_MAX_ITERS=N` — 最大暴力破解迭代次数(默认:100 亿次) - `LPE_SEED=N` — 密钥搜索的随机种子(默认:基于时间) - `DIRTYFRAG_CORRUPT_ONLY=1` — 仅破坏 passwd,不生成 su ## 环境要求 - Linux kernel 6.12.15 或类似版本(存在漏洞的版本) - 非特权用户(uid > 0) - 可访问的 `/usr/bin/su` 和 `/etc/passwd` - 启用 `CONFIG_XFRM=m` 和 `CONFIG_RXRPC=m` - CAP_NET_RAW(如果不可用,则通过 unshare 获取) ## 注意事项 - 两个漏洞利用程序均使用 `unshare(CLONE_NEWUSER | CLONE_NEWNET)` 来获取 CAP_NET_RAW - 破坏完成后会自动执行 root shell(除非使用 `--corrupt-only` 或设置了 `DIRTYFRAG_CORRUPT_ONLY=1`) - CVE-2026-43500 包含用于无缝 shell 的交互式 PTY 设置 - 已在 Intel Core i7-12700K / 32GB RAM / Linux 6.12.15 上测试 ## 免责声明 仅用于授权的安全研究和防御目的。
标签:CSV导出, Linux内核, Web报告查看器, 安全渗透, 客户端加密, 本地提权, 概念验证, 网络安全, 隐私保护