
Copy Fail(CVE-2026-31431)は、Linuxカーネルのauthencesn暗号テンプレートにおけるロジックバグです。これにより、特権のないローカルユーザーが、システム上の任意の読み取り可能なファイルのページキャッシュに対して、決定的かつ制御された4バイトの書き込みを引き起こすことができます。
CVE-2026-31431 に対する高度なバイト完全一致のローカル権限昇格(LPE)概念実証(PoC)です。Linuxカーネルの暗号サブシステム(algif_aead)における論理的な欠陥を悪用します。
このリポジトリには、AF_ALG ソケットインターフェースと splice() システムコールを操作して読み取り専用のページキャッシュメモリを確実に上書きする、高度に最適化されたC実装が含まれています。
「Copy Fail」と呼ばれるこの脆弱性により、権限のないローカル攻撃者がカーネルに暗号操作の出力をシステム上の任意のファイルのメモリマップ済みページへ直接書き込むことを強制できます。/usr/bin/su を標的とすることで、このPoCはゼロコピーメモリインジェクションを実現し、ディスク上の物理バイナリを変更することなく即座にrootシェルを取得します。
様々な最新Linuxディストリビューションで広範なテストを実施し、悪用可能な範囲の特定とパッチの挙動の観察を行いました。
パッチ適用済みカーネル(例:6.19.14+ および 7.0.0+)では、エクスプロイトはクラッシュや EINVAL のスローなしに実行されます(サイレント失敗)。カーネルは生のNetlink rtattr ヘッダーを正常に解析しますが、splice() の書き戻しフェーズ中に VM_MAYWRITE ページ権限を正しく強制します。/usr/bin/su の読み取り専用ページキャッシュを上書きする代わりに、安全なバッファを静かに割り当てます。
gcc copy_fail_exp.c -o copy_fail_exp
chmod +x copy_fail_exp
./copy_fail_exp
[*] CVE-2026-31431 Research - Ultimate C Implementation
[+] Page Cache completely overwritten.
[+] Detonating modified binary...
# whoami
root
このコードは、教育、防御研究、および脅威モデリングの目的にのみ公開されています。本番システムや明示的な許可がない環境では実行しないでください。
| オペレーティングシステム | カーネルバージョン | 脆弱性あり? | 観察結果 / 根本原因 |
|---|
| Kali Linux 2026.1 | 6.18.12+kali-amd64 | ✅ あり | 完全な悪用に成功。rootシェルを取得。 |
| Linux Mint 22.3 | 6.14.0-37-generic | ✅ あり | 完全な悪用に成功。rootシェルを取得。 |
| Ubuntu 22.04.5 LTS | 6.8.0-111-generic | ✅ あり | 完全な悪用に成功。rootシェルを取得。 |
| Ubuntu 24.04.4 LTS | 6.8.0-111-generic | ❌ なし | Protocol not available。OSがデフォルトで必要な AF_ALG netlink操作を制限・無効化している。 |
| Kali Linux 2026.1 | 6.19.14+kali-amd64 | ❌ なし | パッチ適用済み(サイレント失敗)。su が通常通りパスワードを要求する。 |
| Ubuntu 26.04 LTS | 7.0.0-15-generic | ❌ なし | パッチ適用済み(サイレント失敗)。su が通常通りパスワードを要求する。 |