LinuxシステムがCVE-2026-31431(「Copy Fail」)に対して脆弱かどうかを判定する、シンプルで安全なPythonスクリプトです。これはカーネル4.14以降の主要なディストリビューションすべてに影響するローカル権限昇格の脆弱性です。
CVE-2026-31431は、Linuxカーネルのalgif_aead暗号化ソケットモジュールにおける直線的なロジックバグです。AF_ALGソケットをsplice()と組み合わせて使用することで、権限のない攻撃者がsetuidバイナリのページキャッシュ内の4バイトを上書きし、root権限を取得できます。
| プロパティ | 詳細 |
|---|
| レースコンディションが必要 | ❌ いいえ – 悪用は決定的です |
| カーネルオフセットが必要 | ❌ いいえ – バージョン固有のオフセットは不要です |
| 悪用の複雑さ | root権限取得には732バイトのPythonスクリプト1つで十分です |
| このチェッカー | 受動的な診断のみ – 脆弱性をトリガーしません |
このスクリプトは、脆弱性が依存する正確なアルゴリズムテンプレートを使用してAF_ALGソケットの作成とバインドを試みます:
authencesn(hmac(sha256),cbc(aes))
| 結果 | 意味 |
|---|---|
| ソケットが作成・バインドされた | 脆弱なコードパスに到達可能 – 直ちにパッチを適用してください |
EAFNOSUPPORT (errno 97) | モジュールがロードされていない – 攻撃対象領域は利用不可 |
Permission denied | MACポリシー(SELinux/AppArmor)がアクセスをブロック – 安全 |
このスクリプトは脆弱性を一切トリガーしません。完全に受動的で、実行しても安全です。
リポジトリをクローンするかcheck_copyfail.pyをダウンロードして、次のコマンドを実行します:
python3 check_copyfail.py
____ _____ _ _
/ ___|___ _ __ _ _| ___|_ _(_) |
| | / _ \| '_ \| | | | |_ / _` | | |
| |__| (_) | |_) | |_| | _| (_| | | |
\____\___/| .__/ \__, |_| \__,_|_|_|
|_| |___/
CVE-2026-31431 "Copy Fail" – 到達可能性チェッカー
Phalanx CCS / d_0_4 | 防御目的のみでの使用
-------------------------------------------------------
カーネルリリース: 6.1.0-28-amd64
バージョン範囲 : 影響を受ける可能性のある範囲
AF_ALGターゲット : authencesn(hmac(sha256),cbc(aes))
[!!!] 脆弱な攻撃対象領域に到達可能
ソケットが作成・バインドされました – AF_ALGに到達可能
即時緩和策:
echo 'install algif_aead /bin/false' | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo rmmod algif_aead 2>/dev/null
その後、パッチが利用可能になり次第カーネルを更新してください。
上流の修正: commit a664bf3d603d
このスクリプトは、攻撃対象領域に到達可能な場合は終了コード**1で、システムが安全な場合は0**で終了します。そのため、シェルスクリプト、Ansibleプレイブック、CIパイプラインでの使用に適しています。
カーネル更新が利用可能になるまで、脆弱なモジュールを無効化します:
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo rmmod algif_aead 2>/dev/null
公式の修正はメインラインカーネルのコミット**a664bf3d603d**です。パッチが利用可能になり次第、ディストリビューションのパッケージマネージャーを介して更新してください。
このチェッカーは、最新のAndroidデバイス(Termuxを含む)では常に安全と報告します。必須のSELinuxポリシーにより、AF_ALGソケットは権限のないアプリでは利用できないため、標準のAndroidビルドではこの脆弱性は悪用できません。
このプロジェクトはMITライセンスの下でライセンスされています – 詳細はLICENSEを参照してください。自由に使用、変更、配布してください。
免責事項: このツールは防御的な診断目的のみで使用してください。
所有していないシステムや明示的な書面による許可なしに使用しないでください。