
Copy Fail(CVE-2026-31431)LPEエクスプロイト。LinuxカーネルのAF_ALGページキャッシュ脆弱性を標的とした、クリーンでマルチアーキテクチャ対応のPython再実装です。
Linuxカーネル4.11からパッチ適用済みの6.18リリース未満までのローカル権限昇格。
このバグはカーネルのAF_ALGソケットインターフェースに存在し、具体的にはauthencesnがインプレースAEAD復号中にscatter-gatherリストを処理する方法に起因します。結果として、権限のないユーザーが_任意の読み取り可能なファイルのページキャッシュ_内の4バイトを一度に上書きできます。
/usr/bin/suのようなsetuidバイナリをシェルコードで上書きし、実行するだけでrootになれます。レース不要、カーネルシンボル不要、再コンパイル不要。同じ172バイトのAArch64ペイロード(x86-64では160、i386では126、ARMv7では138)が全ディストリビューションで動作します。
この脆弱性はTaeyang Lee & Theori / Xint Codeによって発見され、2026年4月29日に公開されました。このリポジトリは、認可されたテストを目的とした独立したクラスベースの再実装です。
| 脆弱性の確認 | エクスプロイトとroot取得 |
|---|---|
![]() | ![]() |
allowPrivilegeEscalation: true(Kubernetesのデフォルト)のコンテナは脱出できます。4.11からおよそ6.17.xまでのカーネルを実行しているすべてのシステム。以下を含みます:
パッチ適用済みカーネル:メインライン ≥ 6.18.22 / 6.19.12 / 7.0、および安定版ツリーへのバックポート。
# システムが脆弱かどうかを確認
python3 exploit.py --check
# エクスプロイトを実行(非rootユーザーが必要)
python3 exploit.py
os.splice)authencesn(hmac(sha256),cbc(aes))をサポートするカーネル/usr/bin/su。代替を見つけるには--scanを使用)チェックでアルゴリズムに関するエラーが出る場合は、必要なモジュールをロードしてください:
sudo modprobe algif_aead authencesn hmac cbc
一部のディストリビューションは一時的なブロック(/etc/modprobe.d/disable-algif_aead.conf)を同梱しています。スクリプトはrootで実行すると自動的に削除します。手動で削除することもできます。
恒久的な対策: カーネルを更新してください。Ubuntu/Debianの場合:
sudo apt update && sudo apt upgrade linux-image-generic
回避策(IPsec/XFRMには影響しません):
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo rmmod algif_aead 2>/dev/null
注: IPsec/XFRMはこのブロックの影響を受けません。カーネル暗号APIを直接使用しており、AF_ALGを使用しないためです。
コンテナ:
主な緩和策は、seccompプロファイルでAF_ALGソケットをブロックすることです。さらに、PodのセキュリティコンテキストでallowPrivilegeEscalation: falseを設定してno_new_privsを有効にすると、カーネルがexecve()でsetuidビットを尊重しなくなります。
このツールは教育目的および認可されたセキュリティテスト用です。所有していないシステムや、書面によるテスト許可がないシステムでは実行しないでください。