関連するソリューション
セキュリティサービス
セキュリティ製品
サイバー・セキュリティ・ソリューション部
テクニカルスペシャリスト 松岡 政之 
こんにちは。サイバー・セキュリティ・ソリューション部テクニカルスペシャリストの松岡です。
季節は初夏となり過ごしやすい時期になるかと思いきや、日中30℃を超えたり半袖では寒い日があったりとなかなか安定しない日々が続いておりますが、皆様いかがお過ごしでしょうか。私は、幸い風邪をひいたりはしませんでしたが、ゴールデンウィークに崩れた生活リズムがいまだに戻らず四苦八苦しています。
これから梅雨を経て本格的に暑い時期に突入していくので、熱中症を含めて体調管理には気を付けていきたいですね。
Dirty Fragとは
それでは本題です。
皆様、2026年5月に公開されたLinuxの脆弱性であるDirty Fragについてご存じでしょうか?
Dirty Fragは、2026年5月に公開されたLinuxカーネルのローカル権限昇格(LPE)脆弱性であり、主にCVE-2026-43284とCVE-2026-43500という2つの欠陥を組み合わせて悪用されます。これらはIPsec(ESP)とRxRPCという通信関連モジュールに存在する問題で、攻撃者が低権限のユーザーとしてシステムに侵入した後、root権限を取得できるのが特徴です。単体のリモート侵入を可能にするものではありませんが、既存の侵入経路と組み合わさることで被害を拡大させる脆弱性として位置付けられています。さらに、PoCコードが公開されており、実際の攻撃での利用も確認されているため、理論的な問題にとどまらない現実的な脅威となっています。

ソフトウェアやシステムに存在するセキュリティ脆弱性の深刻度を、0.0〜10.0の数値で客観的に評価する国際的な指標であるCVSSスコア(共通脆弱性評価システム)では、Dirty Fragはおおむね7.8(High)と評価されています。これは「ローカルからの攻撃が前提」であるためですが、実際の危険性はそれ以上と見なされる場合が多いです。その理由は、攻撃が成功すると完全なroot権限を取得でき、システムの全制御を奪われるためです。
また、本脆弱性は同時アクセスによる処理のタイミングや実行順序に依存しないロジックバグであり、従来のLPE脆弱性に比べて成功率が高く、安定して悪用可能である点が大きな特徴です。そのため、CVSSの数値以上に実務上のリスクは高く、重要システムでは迅速な対応が求められます。
Dirty Fragの最大の危険性は、侵入後の攻撃を一気に致命的なレベルまで引き上げる点にあります。低権限ユーザーからroot権限を取得されると、攻撃者はファイルの改ざん、認証情報の取得、ログの消去、バックドアの設置など、システム全体の完全支配が可能になります。特に、コンテナ環境や共有サーバーのように複数ユーザーが存在するシステムでは、1つのアカウント侵害が即座に全体侵害へと拡大するリスクがあります。また、Dirty Fragは成功率が高くクラッシュを伴わないため、検知されずに悪用される可能性がある点も重要です。
Dirty Fragの仕組み
それではDirty Fragはどのようにして引き起こされるのか、その仕組みについてマニアックになりすぎない程度にかいつまんで解説します。専門的な内容になるため、仕組みまでは興味がないという方は読み飛ばしていただいて構いません。
Dirty Fragは、Linuxカーネルのページキャッシュとネットワーク処理の欠陥を組み合わせて悪用する脆弱性です。基本的な流れは、splice()システムコールなどのゼロコピー機構(ユーザー空間のバッファを経由せずにカーネル内部で直接データを移動させる仕組み)を利用して、ファイルのページキャッシュへの参照をネットワークバッファに紐づけることから始まります。
本来、こうしたメモリはCopy-on-Write(COW)によって保護されるべきですが、IPsec(ESP)やRxRPCの処理ではこのチェックが不十分なケースがあり、カーネルが「自分の所有ではないページ」に対して直接復号処理を行ってしまいます。
その結果、読み取り専用のファイルであっても、その内容がメモリ上で書き換えられ、ページキャッシュを介してシステム全体に影響を与えます。最終的に攻撃者は /etc/passwd や /usr/bin/su などの重要ファイルを書き換え、root権限を取得します。
このように、正規のメモリ共有・高速化機構を逆手に取る点がDirty Fragの本質です。
実証コードを試してみる
さて、Dirty Fragがどういった脆弱性かなんとなくわかったところで、実際どのくらいの難易度でroot権限を取得できるのか公開されている実証コードを用いて試してみたいと思います。実証コードについては下記URLを参照しています。
https://github.com/V4bel/dirtyfrag
※実証コードの実行は自己責任となります。また、自身の所有する環境以外で実行すると不正アクセス禁止法やウイルスの実行等に関する刑法に抵触する可能性があるため絶対にしないでください。
では、ちょうど都合よくしばらく使っていなかった少し古めのUbuntuの仮想マシンが自宅のパソコン内にあったのでこの環境を利用していきます。
1.まずはテスト用のユーザーでコンソールを開き、GitHubから実証コードを入手します。

2.ダウンロードしたディレクトリの中身は以下のようになっています。

3.exp.cはソースファイルなのでコンパイルします。その結果expという実行ファイルが作られます。

4.それではこの実行ファイルexpを実行してみましょう。するとどうでしょう!プロンプトの記号が"#"に変わっているのでrootが取れていることが分かります。試しにwhoamiコマンドを実行すると私はrootだと主張してきます。また、idコマンドも実行してみると、uid/gid/groupsすべてが0の正真正銘のrootだということが分かります。
いかがだったでしょうか?実際にやってみると、実証コードを用いることで特殊なツール等を用いなくても非常に簡単にできてしまいました。このことから、この脆弱性を放置していると、攻撃者に侵入されてしまった場合、あっという間に管理者権限を奪取され、システムを改ざんされたり重要な情報を持ち出されたりする危険性が高いことがお分かりいただけたかと思います。
対応方法
それでは、Dirty Fragにはどのように対応していけば良いのでしょうか。
Dirty Fragへの最も有効な対策は、カーネルの更新を行うことです。各ディストリビューションが提供する修正済みカーネルにアップデートし、再起動することで根本的な対策が可能です。具体的な修正済みのバージョンについては各ディストリビューションが発表する情報をご確認ください。
一方で、環境によっては早期のパッチ適用が難しいという場合もあるかと思います。その場合の暫定対策として、影響を受けるカーネルモジュール(esp4、esp6、rxrpc)を無効化・アンロードする方法があります。これにより攻撃経路を遮断できますが、IPsec VPNなど一部機能に影響が出る可能性があるため、実施する前に対象の環境で影響がないか確認する必要があります。
また、侵入後の悪用を前提とした脆弱性であるため、SSHアクセスの制限、最小権限の徹底、SELinux/AppArmorの有効化など、攻撃者にローカル実行権限を与えない運用も重要です。さらに、異常なsetuid実行や不審な権限昇格の検知など、ログ監視強化も併せて実施することで被害拡大を防止できます。
まとめ
今回はLinuxで新たに発見された脆弱性のDirty Fragについてみていきました。
Dirty FragはLinuxカーネルのネットワーク処理とページキャッシュの欠陥を悪用したローカル権限昇格脆弱性であり、低権限ユーザーからroot権限を取得できる点が特徴です。実際に実証コードを実行した結果からも非常に簡単にroot権限を奪取できてしまうことが分かり、実務上は極めて危険な脅威といえます。そのため、ネットワーク上からアクセス可能な環境では早急な対策が必要となります。対策としてはカーネルのアップデートが必要になりますが、暫定対応としては対象モジュールの無効化も効果があります。
また、近年はこのように新たな脆弱性が継続的に発見されており、特に本件のように実務上の影響が大きいものも少なくありません。そのため、日頃から脆弱性情報を継続的に収集し、迅速に評価・対処できる体制を組織的に整備しておくことが重要です。
