0xFuffM3/CVE-2026-31635-DirtyDecrypt

GitHub: 0xFuffM3/CVE-2026-31635-DirtyDecrypt

针对 Linux 内核 RxRPC 模块 CVE-2026-31635 本地提权漏洞的 PoC 利用代码与安全研究文档仓库。

Stars: 3 | Forks: 0

# CVE-2026-31635 · DirtyDecrypt [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![Kernel](https://img.shields.io/badge/kernel-6.10--6.13-critical)](https://www.kernel.org) [![Type](https://img.shields.io/badge/type-LPE-blue.svg)](https://en.wikipedia.org/wiki/Privilege_escalation) [![Status](https://img.shields.io/badge/status-patched-brightgreen.svg)] ## 目录 - [概述](#overview) - [快速开始](#quick-start) - [验证您的系统](#verify-your-system) - [漏洞利用摘要](#exploit-summary) - [受影响的系统](#affected-systems) - [如何使用此仓库](#how-to-use-this-repository) - [缓解措施](#mitigation) - [常见问题解答](#faq) - [仓库结构](#repository-layout) - [参考资料](#references) ## 概述 本仓库包含 **CVE-2026-31635** 的研究资料和漏洞概念验证,这是一个存在于 Linux 内核 `net/rxrpc/rxgk.c` 中的本地提权漏洞。 该漏洞发生在 RxRPC 使用 AES-CBC 就地(in-place)解密数据包时,未事先确保数据包数据是私有的。如果数据包是由页缓存页面构建的,内核可能会直接解密到共享的文件映射内存中。 | 属性 | 详情 | |---|---| | **CVE** | CVE-2026-31635 | | **组件** | `net/rxrpc/rxgk.c` — `rxgk_decrypt_skb()` | | **根本原因** | 解密前缺少 `skb_cow_data()` 检查 | | **影响** | 本地提权至 root | | **受影响的内核** | 6.10 – 6.13 | | **修复版本** | 6.13.2 · 6.12.10 · 6.6.75 | ## 快速开始 选择符合您目标的路径: 1. **验证漏洞** - 检查内核版本和 `CONFIG_RXGK` - 使用 `./dirtydecrypt --check` 2. **构建漏洞利用程序** - `cd exploit` - `make` 3. **阅读技术研究** - 从 `docs/vulnerability-analysis.md` 开始 - 查看 `docs/patch-analysis.md` 和 `docs/exploit-development.md` ## 验证您的系统 运行以下检查以确定您的环境是否在受影响范围内: ``` uname -r zgrep CONFIG_RXGK /proc/config.gz 2>/dev/null || grep CONFIG_RXGK /boot/config-$(uname -r) ``` 如果内核版本在 `6.10–6.13` 范围内且启用了 `CONFIG_RXGK`,则系统可能存在漏洞。 然后使用漏洞利用程序的 PoC 验证模式: ``` cd exploit ./dirtydecrypt --check ``` ## 漏洞利用摘要 该漏洞利用程序使用格式错误的 RxRPC 数据包,迫使内核将数据解密到共享的页缓存页面中。 步骤: 1. 从 setuid 二进制文件或其他敏感文件中选择一个可读的目标页面。 2. 使用受控的 AES 密钥创建 RxRPC 解密上下文。 3. 构建一个双片段 SKB,其中第一个片段映射到目标页面,第二个片段包含密文。 4. 在内核中调用 `rxgk_decrypt_skb()`。 5. 内核将明文写入目标页缓存条目,而不是私有缓冲区。 6. 执行被修改的二进制文件以获取 root 权限。 该漏洞利用在 `exploit/dirtydecrypt.c` 中进行了演示。 ## 受影响的系统 ### 已知的易受攻击范围 - Linux 内核 `6.10` 到 `6.13` - `CONFIG_RXGK=m` 或 `CONFIG_RXGK=y` ### 发行版指南 - **Fedora 40, 41** — 原版内核在修补之前易受攻击 - **Ubuntu 24.10** — 默认 6.11 内核易受攻击 - **Debian unstable (Sid)** — 更新前的 6.12+ 内核易受攻击 - **Arch Linux** — 6.13.2 之前易受攻击 - **SUSE Linux Enterprise 15 SP7** — 修补之前的较旧 6.10 构建版本易受攻击 ### 不受影响 - **RHEL 9** — 较旧的内核没有 `rxgk` - **AWS Linux 2** — 较旧的内核系列 - **Android** — 典型的 Android 分支不受影响 - **GCE Container-Optimized OS** — 默认禁用 `CONFIG_RXGK` ## 如何使用此仓库 ### 构建漏洞利用程序 ``` git clone https://github.com/0xFuffM3/CVE-2026-31635-DirtyDecrypt.git cd exploit make ``` 获取完全静态的二进制文件: ``` make static ``` ### 安全运行漏洞利用程序 ``` ./dirtydecrypt --check ``` 使用示例: ``` ./dirtydecrypt -f /usr/bin/sudo -o /tmp/sudo_patched ./dirtydecrypt -p shellcode/payload.bin ``` ### 推荐阅读顺序 1. `docs/vulnerability-analysis.md` 2. `docs/exploit-development.md` 3. `docs/patch-analysis.md` 4. `docs/affected-kernels.md` ## 缓解措施 ### 立即措施 如果不需要 RxRPC,请将其禁用: ``` sudo rmmod rxrpc sudo modprobe -r rxgk echo "blacklist rxrpc" | sudo tee /etc/modprobe.d/blacklist-rxrpc.conf ``` ### 永久措施 升级到已修补的内核版本: - `6.13.2` - `6.12.10` - `6.6.75` ### 检测 审计相关的 socket 创建和密钥操作: ``` sudo auditctl -a always,exit -F arch=b64 -S socket -F a0=28 -k rxrpc_sock ``` ## 常见问题解答 **问:此漏洞利用可以修改磁盘上的文件吗?** 答:不可以。该漏洞仅破坏页缓存内容;除非随后刷新该页面,否则磁盘上的底层文件保持不变。 **问:6.13 之后的内核是否存在此漏洞?** 答:不存在,补丁已向后移植,并且在 6.13.2 之后的内核中已修复了易受攻击的代码路径。 **问:测试此漏洞的最安全方法是什么?** 答:使用具有原版易受攻击内核和一次性用户账户的隔离 VM。 **问:我在哪里可以找到漏洞利用源码?** 答:请参阅 `exploit/dirtydecrypt.c` 和 `exploit/README.md`。 ## 仓库结构 ``` CVE-2026-31635-DirtyDecrypt/ ├── README.md ├── LICENSE ├── DISCLAIMER.md ├── CHANGELOG.md ├── exploit/ │ ├── README.md │ ├── dirtydecrypt.c │ ├── Makefile │ └── shellcode/ │ └── payload.asm └── docs/ ├── vulnerability-analysis.md ├── exploit-development.md ├── affected-kernels.md ├── patch-analysis.md └── references.md ``` ## 参考资料 - [Linux 内核补丁 — 提交 `a2567217`](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a2567217) - [NVD — CVE-2026-31635](https://nvd.nist.gov/vuln/detail/CVE-2026-31635) - [`docs/references.md`](docs/references.md) ## 许可证 MIT — 见 [LICENSE](LICENSE)。 本仓库仅用于教育和授权的安全研究目的。
标签:安全渗透, 客户端加密, 自动回退