
CVE-2026-31431 Copy Fail — MCP経由のLinuxカーネルLPEテスター
📖 インストールガイド — クイックスタート、手動セットアップ、トラブルシューティング
CVE-2026-31431 — これまでに発見された最悪のLinux脆弱性。今やMCPで制御可能。
732バイトのPythonコード。コンパイル不要。レースコンディションなし。ディストリビューションごとのオフセット不要。 ワンショットで、2017年以降にビルドされたすべてのLinuxカーネルでユニバーサルなroot権限を取得できる。
このツールは、到達可能なすべてのLinuxシステムをこの脆弱性に対して検査するMCPサーバー+Webダッシュボードです。元のPoCはすでに簡単に使えるため、これにUI、ネットワークスキャン、フリート追跡を追加したものです。
警告: これは実際のカーネルLPE(ローカル権限昇格)です。自分が所有するシステム、または明示的な書面によるテスト許可を得たシステムでのみ使用してください。無断使用はほとんどの法域で重罪となります。
1. AIが1時間で発見した。
TheoriのXint Codeプラットフォームは、単一のオペレーター向けプロンプトでLinux crypto/ サブシステムをスキャンした。1時間後には、9年間にわたりあらゆる人間のレビュアー、静的解析ツール、ファザーをかいくぐってきたユニバーサルLPEを手に入れていた。このバグは2017年から存在し、サブシステム横断的な推論(AF_ALGソケットの発信元 + authencesnのスクラッチ書き込み動作)を必要とした — まさにLLMネイティブなツールが得意とする種類の結びつきである。発見コストは無視できるほどだった。脆弱性情勢への影響は、存亡に関わるものです。
2. エクスプロイトは依存関係のない純Python、わずか732バイト。 コンパイルツールチェーン不要。インストールするライブラリもない。アーキテクチャ固有のオフセットもない。x86_64サーバー、aarch64ルーター、ARM NASデバイス、Python 3.10+が動作するその他のあらゆるLinuxハードウェアでまったく同じように動作する。Webシェルに貼り付けることも、netcatでパイプすることも、USBメモリから書き込むこともできる。武器化への障壁は事実上ゼロである。
3. ディスク上に痕跡を残さない。
このエクスプロイトは、カーネルのメモリ内ページキャッシュのみを破壊する。/usr/bin/su のディスク上のバイナリは決して変更されない。ディスク上のチェックサムを比較する方式のあらゆるファイル整合性ツール(AIDE、Tripwire、dm-verity)も異状を検出できない。破損は再起動で消える。エクスプロイトが実行されたことを検出する唯一の方法は、auditdやeBPFでその実行中の動作を捉えることだ。フォレンジックの観点からは、このエクスプロイトは不可視である。
4. 数十億台のデバイスには永遠にパッチが適用されない。
主要ディストリビューション(Ubuntu、RHEL、Debian、SUSE)は72時間以内にパッチをリリースした。しかしこのカーネルバグは、CONFIG_CRYPTO_USER_API_AEAD=y を持つ2017年以降に製造されたすべてのLinuxデバイスに組み込まれている — 事実上すべてのデバイスである。OpenWrtルーター(2026-05-02時点でパッチなし)。2019年のベンダーカーネルを実行するIPカメラ。ファームウェアブランチが凍結されたスマートTV。更新のたびにFDAの再認定が必要な医療用輸液ポンプ。10年間のサポートライフサイクルを持つ産業用コントローラー。Androidデバイスは、カーネルの修正ではなく、偶発的な SELinuxポリシー制限によって保護されている — そしてroot化/カスタムROMデバイス、古いFireタブレット、Android TVスティックは完全に露出している。全体の数は数百万ではない。数十億である。そしてそのほとんどにとって、パッチは永遠に来ない。
これは公開されたPoCをラップしたセキュリティテストおよび啓発ツールです。元の732バイトのスクリプトがすでにできること以上のことは何も行いません。追加されるのは次のとおりです:
エクスプロイト自体は公開されており、簡単にコピーでき、なかったことにはできません。このツールは、テストの許可を持つ人々にとって迅速かつ安全なテストを実現するために存在します。
git clone https://github.com/sandraschi/copy-fail-mcp
cd copy-fail-mcp
just
これにより、利用可能なすべてのコマンドを表示するインタラクティブなダッシュボードが開きます。just bootstrap を実行して依存関係をインストールし、その後 just serve または just dev で起動します。
just がインストールされていない場合:
pip install copy-fail-mcp
copy-fail check --host 192.168.1.100
copy-fail serve --http --port 10955
User → AF_ALG socket (authencesn) → splice() target file → HMAC fails
↓
4 bytes written past AEAD boundary
↓
Into page cache of /usr/bin/su
↓
su is now corrupted in memory
↓
Run su → root shell
このバグは、単独では無害だった2つのサブシステムの動作が、組み合わさると致命的になるというものです。AF_ALGのspliceパスは、ページキャッシュのページを書き込み可能な出力として露出させます。authencesnは、正当なAEAD境界を4バイト超えた場所にスクラッチ領域として書き込みます。これらを組み合わせると、読み取り可能な任意のファイルのメモリ内表現を、精密に制御されたデータで破壊できます。エクスプロイトは /usr/bin/su の権限チェックを標的にします。
MIT。エクスプロイトスクリプトはTaeyang Lee / Theori / Xint Code Research Teamによるものです(オリジナルPoC)。
| プロパティ | Copy Fail | Dirty COW (2016) | Dirty Pipe (2022) |
|---|
| エクスプロイトサイズ | 732バイト(Python標準ライブラリ) | C言語 約200行 | C言語 約100行 |
| コンパイルの必要性 | 不要 — 純粋なPython | 必要 — C言語のコンパイル | 必要 — C言語のコンパイル |
| レースコンディション | なし — 決定的(deterministic) | あり — レースウィンドウ | なし |
| ディストリビューション別オフセット | 不要 — どこでも同じスクリプト | 不要 | 不要 |
| ディスク上の痕跡 | なし — ページキャッシュのみ、チェックサムはクリーン | なし | なし |
| コンテナエスケープ | 可能 — 共有ページキャッシュ | 可能 | 可能 |
| カーネルバージョン | >= 4.14(2017年〜現在) | >= 2.6.22(2007年〜2018年) | >= 5.8(2020年〜2022年) |
| 影響を受けるデバイス | 数十億台(増加中) | 2018年に修正済み | 2022年に修正済み |
| 永遠にパッチが適用されない | 数十億台のIoT/組み込み/ルーター | ほぼ修正済み | ほぼ修正済み |
| 発見者 | AI(Xint Code、1時間のスキャン) | 人間の研究者 | 人間の研究者 |
| 発見コスト | クラウドコンピューティングで約6ドル | 数ヶ月の人的労力 | 数ヶ月の人的労力 |
| ツール | 説明 | 侵入口 |
|---|
cf_scan_network | /24サブネットのSSHホストをプローブし、Linuxを識別 | 直接(非同期TCP) |
cf_check_target | カーネル、AEAD設定、ディストリビューションのパッチ状況を確認 | SSHエージェント |
cf_run_exploit | SSH経由でPoCを展開、実行、rootを報告 | SSHエージェント |
cf_assess | チェック+エクスプロイトを1ステップで実行 | SSHエージェント |
cf_apply_mitigation | モジュールブラックリストまたはinitcallブラックリスト | SSHエージェント |
cf_get_exploit_script | 生の732バイトPoCをテキストとして返す | 任意のチャネル |
cf_exploit_local | 手動展開用にPoCをローカルパスへ書き込む | ローカルシェル |