禁輸措置を破って公開された「Dirty Frag」— Linuxカーネルの1行でroot権限を奪う新型LPE

1行のコマンドでroot権限が取得できます。

そして、公式カーネルリリースはまだ公開されていません。

>

この記事で扱う内容

  • Dirty Frag (CVE-2026-43284, CVE-2026-43500)の正体と危険度
  • IPsec ESP、RxRPCの2つのカーネルモジュールを組み合わせたエクスプロイトチェーンの動作原理
  • 「エンバーゴが破られた」という表現がセキュリティ業界で持つ重み
  • 今すぐ行うべき一時的な緩和策
  • Dirty COW → Dirty Pipe → Copy Fail → Dirty Fragへと続くページキャッシュ改ざんの系譜

またお前かLinuxカーネル — ページキャッシュ改ざんシリーズの新章

2026年5月7日、Linuxセキュリティメーリングリスト(oss-security)に1行のPoCが投稿されました。これは、韓国のセキュリティ研究者キム・ヒョヌ氏(@v4bel)が発見した新しい権限昇格の脆弱性、Dirty Fragです。CVSS 3.1基準で7.8点(High)。非特権の一般ユーザーが1行のコマンドでroot権限を奪取します。

もしこれらの名前に馴染みがなければ、これらはいかがでしょうか?

  • Dirty COW (2016, CVE-2016-5195) — すべてのAndroid・Linuxを揺るがした競合状態
  • Dirty Pipe (2022, CVE-2022-0847) — パイプで読み取り専用ファイルを上書き
  • Copy Fail (2026, CVE-2026-31431) — わずか1週間前に公開された同系統の脆弱性

そして今回がDirty Fragです。別名は「Copy Fail 2: Electric Boogaloo」。冗談ではなく、本当にそう呼ばれています。

Dirty Frag、正確には何か

Dirty Fragは、2つの別々のカーネル欠陥を組み合わせたエクスプロイトチェーンです。

欠陥1: xfrm-ESP ページキャッシュ書き込み (CVE-2026-43284)

  • 場所: IPsec (VPNで使われるもの) のESP (Encapsulating Security Protocol) 処理モジュール
  • 導入: 2017年1月17日のコミット
  • トリガー条件: 非特権ユーザーがnamespaceを作成できる必要がある
  • UbuntuではAppArmorがnamespaceの作成をブロックするため、単独では機能しない

欠陥2: RxRPC ページキャッシュ書き込み (CVE-2026-43500)

  • 場所: AFS (分散ファイルシステム) で使用されるRxRPCプロトコルモジュール
  • 導入: 2023年6月のコミット
  • トリガー条件: namespace権限は不要。ただし、rxrpc.koモジュール自体が一部のディストリビューションには含まれていない

この2つを組み合わせて使用することがDirty Fragの核心です。ESPがブロックされていればRxRPCを、RxRPCがなければESPを — 環境に応じてどちらか一方で回避します。algif_aeadブラックリストでブロックされたCopy Failの緩和策が適用されたシステムでも、Dirty Fragは依然として有効です。

何をするのか: ページキャッシュの上書き

Linuxはディスクから読み込んだファイルの内容をRAMのページキャッシュ(page cache)に保持します。これは、同じファイルを頻繁に読み込む負担を軽減するためです。しかし、このページキャッシュは保護されたメモリです。一般ユーザーが勝手に書き込むことはできません。

Dirty Fragは、esp4、esp6、rxrpcがページバッファを「その場で(in-place)復号化」するコードパスを狙います。splice(2)やsendfile(2)で入ってきたパイプページがそのままソケットまで到達すると、非特権プロセスがその平文ページへの参照を保持し続けることができるようになります。結果として、読み取り専用のシステムファイル(例: /etc/passwd, /etc/shadow, /usr/bin/sudo)のページキャッシュを上書きできる書き込みプリミティブが生成されます。

ここにroot権限付与コードを挿入すれば — 終わりです。競合状態ベースのエクスプロイトとは異なり、このバグクラスは決定的(deterministic)で信頼性が非常に高いです。試行が失敗することはほとんどないという意味です。

⏰ 「エンバーゴが破られた」とはどういう意味か

セキュリティ業界には、責任ある開示(Coordinated Disclosure)という慣行があります。その流れはこうです。

  1. 研究者が脆弱性を発見
  2. ベンダー(Linuxカーネルメンテナー)に非公開で通知
  3. ベンダーがパッチを作成し、主要なディストリビューションにバックポート
  4. すべての準備が整ったら、約束された日付(エンバーゴ解除日)に同時公開

ここでエンバーゴ(embargo)とは、その約束された非公開期間を指します。

しかし、Dirty Fragではこの流れが破られました。脆弱性は、修正がリバースエンジニアリングされ、詳細が公開されたため、エンバーゴ満了前に公開されました。誰かが公開gitツリーに先にマージされたパッチコミットを逆転させてエクスプロイトを作成し、GitHubにアップロードしたのです。結果として、メインラインカーネルにはパッチが適用されましたが、公式カーネルリリースはまだ出ておらず、ほとんどのディストリビューションは急いでバックポートパッチを公開している最中です。

エンバーゴの破棄は単なる「秘密漏洩」ではありません。パッチを適用できていない多数のシステムが、攻撃者には見え、防御者には隠されたまま数日間を過ごさなければならないことを意味します。

影響を受けるディストリビューション

各ベンダーの発表を総合すると、ほぼすべての主要なディストリビューションが影響範囲内です。

ディストリビューション 状態
Linux Kernel (ESP, 〜2017年以降) 影響あり
Linux Kernel (RxRPC, 〜2023年以降) 影響あり
Ubuntu (複数バージョン) 影響あり (PoC検証済み)
RHEL 8 / 9 / 10 影響あり
AlmaLinux 8 / 9 / 10 影響あり
CentOS Stream 10 影響あり
Fedora 最新 影響あり
openSUSE Tumbleweed 影響あり
OpenShift 4 影響の可能性あり

クラウドVM、ベアメタル、社内ワークステーション — どこでも該当する可能性があります。

️ 今すぐすべきこと

① カーネルパッチの適用 (最優先)

ディストリビューションからパッチがリリースされているなら、ためらう理由はありません。

アップデート後、新しいカーネルを適用するには必ず再起動が必要です。

② パッチ適用前であれば、脆弱なモジュールのロードをブロック

⚠️ 注意: esp4、esp6をブロックすると、IPsec VPNが動作しなくなります。rxrpcをブロックすると、AFS分散ファイルシステムが影響を受けます。運用環境に適用する前に、必ず依存関係を確認してください。

③ IPsecが必須な環境での次善策

ESPの亜種だけでもブロックしたい場合は、非特権ユーザーのnamespace作成を無効にする方法があります。

⚠️ ただし、この措置はrootlessコンテナ、サンドボックスブラウザ、Flatpakの動作に影響を与える可能性があり、RxRPCの亜種はブロックできません。

④ 侵害が疑われる場合のページキャッシュクリア

すでにエクスプロイトが試行された痕跡がある場合、改ざんされたページキャッシュをディスクのオリジナルに戻すことができます。

もちろん、これは応急処置に過ぎません。侵害が疑われるシステムは、隔離後にフォレンジックが優先されます。

⚠️ よくある落とし穴

  • 「うちのシステムではIPsecは使っていません」 → RxRPCの亜種はIPsecとは無関係です。モジュールがロード可能であれば十分です。
  • 「先週Copy Failのパッチを適用したから安全だ」 → Copy Failのalgif_aeadブラックリスト緩和策ではDirty Fragを防げません。これは別の脆弱性です。
  • 「コンテナ内だから大丈夫」 → デフォルトのseccompプロファイルが適用されたKubernetes環境ではリスクは減少しますが、VMや制限の少ない環境では依然として危険です。
  • 再起動の漏れ → モジュールブロック設定だけを行い、再起動しないと、すでにメモリにロードされたモジュールはそのまま残ります。

✅ まとめ / 今回の事件が残したもの

  • Dirty Frag = CVE-2026-43284 + CVE-2026-43500, CVSS 7.8 (High), ページキャッシュ改ざん型LPE
  • IPsec ESPまたはRxRPC、どちらか一方が露出していればroot権限取得可能
  • エンバーゴ破棄によりPoCが先行公開され、公式カーネルリリースはまだ (各ディストリビューションがバックポート中)
  • Dirty COW → Dirty Pipe → Copy Fail → Dirty Frag — ページキャッシュ改ざん系譜のさらなる更新
  • 今すぐ行うべきこと: ① カーネルアップデート、② 不可能な場合はモジュールブロック、③ 依存関係確認後に再起動

ページキャッシュはパフォーマンスのために作られた構造です。しかし、「非特権ユーザーがそのページを何らかの方法で操作できれば権限昇格が可能になる」というパターンは、これで4回目です。次の発表もまた同じ系統であることに、1万ウォンくらい賭けてみませんか?


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です