Linux Kernel 0-Day「Copy Fail」2017年以降のディストロに影響

Linux カーネルの重大なゼロデイ脆弱性が公開されました。この脆弱性により、2017年以降に提供されたほぼすべての主要 Linux ディストリビューションで、権限のないローカルユーザーが完全な root アクセスを獲得できます。

CVE-2026-31431として追跡され、「Copy Fail」と名付けられたこの脆弱性は、Theori の研究者 Taeyang Lee により発見され、Xint Code Research Team により AI 支援分析を使用して完全なエクスプロイトチェーンに組み込まれました。

Dirty Cow (CVE-2016-5195) や Dirty Pipe (CVE-2022-0847) などのレース条件ベースの前身とは異なり。

レース条件の回避、カーネルバージョンオフセット、再コンパイル、またはコンパイル済みペイロードは必要ありません。

標準ライブラリモジュールのみを使用した単一の732バイトのPythonスクリプトが、テスト済みのすべてのディストリビューションとアーキテクチャで決定的なroot アクセスを実現します。これはローカル権限昇格エクスプロイトにおいて著しく低い障壁です。

ユーザーがファイルをパイプに結合し、AF_ALG ソケットにフィードすると、AEAD 入力スキャッターリストはコピーではなく、そのファイルのカーネルページキャッシュページへの直接参照を保持します。

IPsec が 64 ビット Extended Sequence Number (ESN) サポート用に使用する authencesn アルゴリズムは、呼び出し元の宛先バッファをスクラッチスペースとして使用し、assoclen + cryptlen オフセット時に宣言された出力境界を超えて、連鎖したページキャッシュページに 4 バイトを直接書き込みます。

2011 年、2015 年、2017 年の 3 つの独立したコード変更がこの悪用可能な状態を作成するために収束し、開発者はほぼ 10 年間、その交差点を接続することはありませんでした。

エクスプロイトはカーネルのページキャッシュ、つまりファイルのメモリ内表現をターゲットにします。読み取り可能なファイルに属するページキャッシュページへの制御された 4 バイト書き込みをトリガーすることで、攻撃者は /usr/bin/su などのメモリ内の setuid バイナリを破損させます。

カーネルが破損したページをライトバック用にダーティマークすることはないため、ディスク上のファイルは変更されないままになり、チェックサムベースのファイル整合性ツールが修正を完全に見落とします。

この脆弱性はカーネル 4.14 で導入され、すべてのパッチが適用されていないディストリビューションに影響します。独立したテストにより、以下での root シェル実行が確認されました。

ローカル権限昇格を超えて、Xint Code 研究によれば、Copy Fail は Kubernetes コンテナエスケーププリミティブとして機能します。

ページキャッシュはホスト上のすべてのプロセス間で共有されるため、コンテナ境界を含めて、侵害されたコンテナは他のコンテナとホストカーネルに見える setuid バイナリを破損させることができます。

カーネルアップデート待ちの間、管理者は以下の即時対応を適用する必要があります。

この脆弱性は 2026 年 3 月 23 日に Linux カーネルセキュリティチームに報告され、2026 年 4 月 1 日にパッチが適用され、2026 年 4 月 22 日に CVE が割り当てられ、2026 年 4 月 29 日に公開されました。

システム管理者は、カーネルアップデートを直ちに適用することを強く勧告されています。

翻訳元: https://cyberpress.org/linux-kernel-0-day-copy-fail/

ソース: cyberpress.org