
Linux の RxRPC/GSSAPI 復号パスにおけるローカル権限昇格。
rxgk_decrypt_skb()におけるskb_cow_data()チェックの欠如により、非特権のローカル攻撃者がページキャッシュのページを破損し、読み取り専用ファイルのメモリ内コンテンツを上書きできます。
このリポジトリには、Linux カーネル net/rxrpc/rxgk.c のローカル権限昇格脆弱性 CVE-2026-31635 の調査資料と概念実証が含まれています。
この脆弱性は、RxRPC がパケットデータがプライベートであることを最初に確認せずに AES-CBC を使用してパケットをインプレースで復号する際に発生します。パケットがページキャッシュのページから構築されている場合、カーネルは共有ファイルバックドメモリに直接復号する可能性があります。
目標に応じたパスを選択してください:
CONFIG_RXGK を確認./dirtydecrypt --check を実行cd exploitmakedocs/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 サポートがないと報告された場合、カーネルはエクスプロイト不可能です。
このエクスプロイトは、不正な形式の RxRPC パケットを使用して、カーネルを強制的に共有ページキャッシュページに復号させます。
手順:
rxgk_decrypt_skb() を呼び出す。エクスプロイトは exploit/dirtydecrypt.c で実証されています。
6.10 から 6.13CONFIG_RXGK=m または CONFIG_RXGK=yrxgk なしの古いカーネル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
docs/vulnerability-analysis.mddocs/exploit-development.mddocs/patch-analysis.mddocs/affected-kernels.mdRxRPC が不要な場合は無効化:
sudo rmmod rxrpc
sudo modprobe -r rxgk
echo "blacklist rxrpc" | sudo tee /etc/modprobe.d/blacklist-rxrpc.conf
パッチ適用済みのカーネルリリースにアップグレード:
6.13.26.12.106.6.75関連するソケット作成とキー操作の監査:
sudo auditctl -a always,exit -F arch=b64 -S socket -F a0=28 -k rxrpc_sock
Q: このエクスプロイトでディスク上のファイルを変更できますか?
A: いいえ。この脆弱性はページキャッシュの内容のみを破損します。ディスク上のバッキングファイルは、後でページがフラッシュされない限り変更されません。
Q: この脆弱性は 6.13 より新しいカーネルに存在しますか?
A: いいえ。パッチはバックポートされており、脆弱なコードパスは 6.13.2 以降のカーネルで修正されています。
Q: これをテストする最も安全な方法は?
A: 脆弱な標準カーネルと使い捨てユーザーアカウントを備えた隔離された VM を使用してください。
Q: エクスプロイトのソースコードはどこにありますか?
A: 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
MIT — LICENSE を参照。
このリポジトリは教育および許可されたセキュリティ研究目的のみを対象としています。
| プロパティ | 詳細 |
|---|
| CVE | CVE-2026-31635 |
| コンポーネント | net/rxrpc/rxgk.c — rxgk_decrypt_skb() |
| 根本原因 | 復号前の skb_cow_data() チェックの欠如 |
| 影響 | ルートへのローカル権限昇格 |
| 影響を受けるカーネル | 6.10 – 6.13 |
| 修正バージョン | 6.13.2 · 6.12.10 · 6.6.75 |