「Dirty Frag」:エンバーゴ破綻でパッチなし公開、2017年以降のLinux全般に影響するroot権限昇格脆弱性

[更新]2026年5月8日

Googleで優先するソースとして追加するボタン

セキュリティの世界には、研究者・開発者・ディストリビューターが連携してパッチを準備するための「エンバーゴ期間」という不文律があります。2026年5月8日、そのエンバーゴが第三者によって破られました。Linuxカーネルの特権昇格脆弱性「Dirty Frag」は、パッチもCVEもないまま、動作する実証コードとともに世界に公開されています。2017年以降のほぼすべてのLinuxディストリビューションが対象です。


韓国のセキュリティ研究者Hyunwoo Kim(@v4bel)は2026年5月8日(日本時間)、Linuxカーネルに存在するローカル特権昇格脆弱性「Dirty Frag」をoss-securityメーリングリストおよびGitHubで公開した。この脆弱性は、xfrm(IPsec)サブシステムとrxrpcサブシステムに存在する2つの欠陥をチェーンすることで、一般ユーザーがroot権限を取得できるものだ。2017年1月以降のすべての主要Linuxディストリビューション(Ubuntu、RHEL、Fedora、openSUSE等)に影響し、WSL2でも権限昇格が確認されている。

Kimが4月30日にLinuxカーネルチームへ報告した後、「無関係な第三者」がエンバーゴを破ったことで、ディストリビューターがパッチを準備できないままの開示を余儀なくされた。そのため現時点でCVE番号は未割り当てであり、主要ディストリビューションに対応パッチはほぼ存在しない(AlmaLinuxがtesting段階)。動作する実証コード(PoC)はすでに公開されており、ワンコマンドでのroot権限取得が可能だ。

直前に開示されたCopy Fail(CVE-2026-31431)への緩和策(algif_aead モジュールのブラックリスト化)は、Dirty Fragに対しては無効である。現時点で推奨される暫定対処は、esp4・esp6・rxrpc の各カーネルモジュールをブラックリスト化してアンロードすることだが、IPsecやAFSファイルシステムを利用する環境では機能への影響が生じる。

From: 文献リンクDirty Frag — GitHub(V4bel/dirtyfrag)文献リンクDirty Frag: Universal Linux LPE — oss-security(Openwall)

【追記(2026年5月8日)】Dirty Fragのxfrm-ESP側の欠陥にCVE番号(CVE-2026-43284)が割り当てられました。詳細は編集部解説末尾をご覧ください。

【編集部解説】

いま何をすべきか

この記事を読んでいる時点で、対応パッチはほぼ存在しません。まず確認すべきは、自分の環境がIPsecトンネル(strongSwan、Libreswan等)やAFS分散ファイルシステム(kAFS)に依存していないかどうかです。

依存していない場合は、以下のコマンドで脆弱なカーネルモジュールをブラックリスト化し、すでにロードされていればアンロードしてください。

sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; echo 3 > /proc/sys/vm/drop_caches; true"

このコマンドは esp4・esp6(IPsecのESP変換を担うモジュール)とrxrpc(AFSクライアントが使うトランスポート)の3つを無効化します。IPsecトンネルを終端または中継しているサーバーには適用しないでください。機能が停止します。

IPsecに依存している環境では、対応パッチのリリースを待ちながら、不審な権限昇格の試みがないかログ監視を強化するほかありません。WSL2環境でも同様の手順が有効です。

AlmaLinuxはすでにtesting段階のパッチを公開しており、本記事公開時点で最も対応が早いディストリビューションです。

なぜパッチのないまま公開されたのか

セキュリティの世界では、脆弱性の発見から修正の公開まで、研究者・ベンダー・ディストリビューターが協調して動く「協調的開示(CVD:Coordinated Vulnerability Disclosure)」が原則とされています。この枠組みの核心にあるのが「エンバーゴ」です。脆弱性の情報を一定期間非公開にし、その間にパッチを準備・配布することで、ユーザーが「無防備な時間」を最小化するための合意です。

Hyunwoo Kimは2026年4月30日にLinuxカーネルチームへDirty Fragを報告しました。ところが「無関係な第三者」がこのエンバーゴを破ったことで、ディストリビューターが準備を整えられないまま情報が流出しました。結果として、Kimは linux-distros(Linuxディストリビューション開発者向けセキュリティ情報共有リスト)のメンテナーへの相談・要請を受け、自らの文書と実証コードを公開することを選びました。CVEが割り当てられていない状態でPoCが世界に出回るという、本来あってはならない状況です。

誰がエンバーゴを破ったのかは現時点で明らかにされていません。ただ、エンバーゴが破られた後に研究者が取りうる選択肢は限られます。沈黙を続ければ攻撃者だけが情報を持ち、防御者は何も知らないまま晒される。公開すれば攻撃者も使えるようになるが、防御者も対処できるようになる。Kimの選択は後者でした。

「Dirty系」とは何か:Dirty Pipe から続く系譜

「Dirty Frag」という名称は、偶然の命名ではありません。研究者本人がFAQで説明しているように、Dirty Pipeを起源とする脆弱性クラスの継承を示しています。

2022年に公開されたDirty Pipe(CVE-2022-0847)は、Linuxのページキャッシュに書き込み権限なしに書き込める欠陥で、当時大きな反響を呼びました。Linuxカーネルのバッファ管理の深いところに潜む「ページキャッシュ汚染」という攻撃パターンを世に知らしめた事案です。

2026年にはCopy Fail(CVE-2026-31431)が同系統の欠陥として開示されました。そのCopy Failを調査する過程でKimが発見したのが、Dirty Fragです。

Dirty FragはCopy Failと同じ「シンク(脆弱性の到達点)」を共有しながら、algif_aeadモジュールの有無に関係なくトリガーされます。つまり、Copy Failへの緩和策としてalgif_aeadをブラックリスト化していた環境でも、Dirty Fragには依然として無防備です。「前回の対策を取ったから安全」という認識は誤りです。

攻撃の本質は、ゼロコピー送信(splice())によってページキャッシュのページを送信バッファに組み込んだとき、受信側カーネルがそのページ上でインプレース復号処理を実行してしまう点にあります。本来読み取りしか権限のないメモリへの書き込みが可能になり、/etc/passwdのようなシステムファイルのキャッシュを改ざんできます。改ざんはメモリ上にとどまり、再起動すれば元に戻ります。ただし、再起動するまでの間はシステム全体が攻撃者の手に渡ります。

この先、何が出てくるか

パッチのリリース:AlmaLinuxがtesting段階にあり、近日中の本番リリースが期待されます。CloudLinuxはCL7h・CL8・CL9・CL10向けのパッチをビルド・QAパイプラインで処理中です。KernelCareのライブパッチ(再起動不要で適用可能)も開発中です。Upstreamカーネルへのパッチはnetdevツリーに向けて進行中とされています。

CVEの割り当て:エンバーゴが破られた影響でCVE番号がまだ存在しません。パッチが揃い次第、順次割り当てられる見込みです。

Copy Failとの連動:Copy Fail(CVE-2026-31431)はすでに野生での悪用が確認されており、Dirty Fragも同様に悪用される可能性があります。CISAや各国のCERTからの注意喚起が出るかどうかも注目点です。

次の発見の可能性:KimはDirty PipeとCopy Failの研究を経てDirty Fragを発見しました。同じバグクラスに属する未知の欠陥がまだ存在するかどうかは、現時点では不明です。

この記事は更新します

Dirty Fragはパッチが存在しない状態で公開された、現在進行中の事態です。各ディストリビューションのパッチリリース状況、CVE番号の割り当て、CISAや各国CERTによる勧告、およびUpstreamカーネルへのマージが確認され次第、本記事に追記します。

情報が動く順番としては、Upstreamパッチ → 各ディストリビューションへのバックポート → CVE割り当て → 公的機関の勧告という流れになると見ています。いずれのタイミングでも、本記事に反映します。

【追記(2026年5月8日)】Dirty Fragを構成するxfrm-ESP Page-Cache Write欠陥にCVE-2026-43284が割り当てられました。あわせて、Linuxメインライン(netdevツリー)への対応パッチ(コミットf4c50a4034e6)のマージが確認されています。

【用語解説】

ローカル特権昇格(LPE:Local Privilege Escalation)
すでにシステムへのアクセス権(一般ユーザー権限)を持つ攻撃者が、管理者(root)権限を奪取する攻撃の総称。リモートから侵入する「リモートコード実行(RCE)」とは異なり、内部からの権限拡大を指す。Dirty Fragはこのカテゴリに属する。

エンバーゴ(Embargo)
セキュリティ脆弱性の協調的開示(CVD)において、パッチ準備のために設ける非公開期間のこと。研究者・ベンダー・ディストリビューターが同期して動くための時間的余裕。期間中に情報が外部に漏れることを「エンバーゴ破綻」と呼ぶ。

ページキャッシュ(Page Cache)
Linuxがディスク上のファイル内容をメモリ上に一時保持する仕組み。ファイルへのアクセスを高速化するためのもの。Dirty Fragはこのページキャッシュを不正に書き換えることで、/etc/passwd 等の重要ファイルの内容を改ざんする。

xfrm(トランスフォームフレームワーク)
LinuxカーネルにおけるIPsec(インターネット通信の暗号化プロトコル)の実装基盤。esp4・esp6 モジュールがこのフレームワークを構成し、Dirty Fragのチェーンの一端を担う脆弱性の所在箇所。

rxrpc(AF_RXRPCトランスポート)
AFS(Andrew File System)分散ファイルシステムのクライアント実装が使用するトランスポートプロトコル。rxrpc.ko モジュールはほとんどのディストリビューションには含まれないが、Ubuntuではデフォルトでロードされている。Dirty Fragチェーンのもう一端。

PoC(Proof of Concept:実証コード)
脆弱性が実際に悪用可能であることを示すために公開されるサンプルコード。Dirty Fragでは、コンパイルして実行するだけでroot権限が取得できるコードがGitHubで公開済み。

【参考リンク】

Dirty Frag — GitHub(V4bel/dirtyfrag)(外部)
発見者・Hyunwoo Kim本人による公式文書、実証コード(exp.c)、技術的詳細write-upを収録したリポジトリ。一次情報源。

Dirty Frag: Universal Linux LPE — oss-security(Openwall)(外部)
Kim本人がoss-securityメーリングリストに投稿した開示文書。エンバーゴ破綻の経緯と開示判断の背景を含む。

Dirty Frag 対応状況 — AlmaLinux公式ブログ(外部)
パッチ対応が最も早いディストリビューションの一つ。testing段階のカーネルビルドのステータスと適用手順を随時更新中。

Dirty Frag 対応状況 — CloudLinux公式ブログ(外部)
CL7h・CL8・CL9・CL10向けのパッチビルド状況、KernelCareライブパッチの進捗を随時更新中。

【参考記事】

Linux Kernel Dirty Frag LPE Exploit Enables Root Access Across Major Distributions — The Hacker News(外部)
セキュリティメディアによる技術解説。攻撃チェーンの詳細とCopy Failとの関係の整理。

Dirty Frag Vulnerability Made Public Early — Phoronix(外部)
Linuxカーネル専門メディアによる速報。エンバーゴ破綻の経緯と暫定対処の紹介。

Devastating ‘Dirty Frag’ exploit leaks out — Tom’s Hardware(外部)
WSL2での権限昇格確認を含む、影響範囲の広さを詳述した記事。

【関連記事】

Dirty Cow、Dirty Pipe、そして Copy Fail──Linux LPE「三世代」の比較が照らす、AIが脆弱性を発見する時代の輪郭 (innovaTopia)
Dirty CowからDirty Pipe、Copy Failまで続くLinux LPEの系譜を三世代にわたって比較した解説記事。Dirty Fragの位置づけを理解する上での参照先として。AIが脆弱性発見に関与する時代背景も論じている。

Linux主要ディストリビューションに影響する732バイト脆弱性「Copy Fail」、各ベンダーの対応状況 (innovaTopia)
Dirty Fragの直接的な前身にあたるCopy Fail(CVE-2026-31431)への各ディストリビューションの初動対応を時系列で追跡。各社の危機管理哲学の違いが浮き彫りになった一連の動きを整理している。

Copy Fail(CVE-2026-31431)|732バイトのPythonがrootを奪う、AIが発見したLinuxカーネルの論理バグ (innovaTopia)
Copy Failの技術的詳細と発見経緯を深掘りした解説記事。Dirty Fragと同じバグクラスに属する論理バグの仕組みと、AIが関与した発見プロセスの背景を丁寧に解説している。

【編集部後記】

脆弱性の開示が「制度」として機能するためには、少なくとも二つの前提が必要です。ひとつは研究者が誠実に報告すること。もうひとつは、その報告を受けた側が誠実に対応すること。Dirty Fragの開示では、前者は満たされていました。Hyunwoo Kimは4月30日にカーネルチームへ報告し、linux-distrosのメンテナーたちと協議を続けていました。制度を壊したのは、その外側にいた「第三者」です。

セキュリティコミュニティがエンバーゴという紳士協定に依存してきたことの脆さが、今回あらためて可視化されました。ただ、代替案があるかというと、簡単ではありません。完全な秘密保持は「攻撃者だけが知っている状態」を生み、公開を急げば「防御者が準備できない状態」を生みます。エンバーゴはその二つの悪のあいだで均衡を取ろうとする試みであり、その均衡は今回のように外部の一人によって容易に崩されます。

Dirty Fragが「Dirty Pipe → Copy Fail → Dirty Frag」という系譜の末尾に来ていることも、気になる点のひとつです。同じバグクラスに属する欠陥が、研究者の目が届いた範囲でこれだけ見つかるということは、まだ見えていない欠陥が存在する可能性を否定できません。今回の一連の開示は、終わりではなく、続きがあるかもしれない話です。

本記事はDirty Fragに関する続報を随時追記します。 パッチのリリース・CVEの割り当て・公的機関の勧告が確認され次第、更新します。