2026年5月7日、研究者Hyunwoo Kimが「Dirty Frag」と名付けたLinuxカーネルのローカル特権昇格(LPE)脆弱性を公開した。CVE-2026-43284(IPsec ESP、CVSSは出典により8.8または7.8)とCVE-2026-43500(RxRPC、CVSS 7.8)という2つのページキャッシュ書き込みバグをチェーンし、非特権ユーザーが1コマンドでroot権限を取得できる。Copy Fail(CVE-2026-31431)に続く「Linuxカーネルを襲った第2の主要バグ」(The Record Media)と位置づけられており、タイミング依存の競合を一切持たない決定論的なロジックバグとして設計されている。エンブレゴ(embargo)が第三者によって破棄されたため、パッチが存在しない状態でPoC(概念実証コード)が公開されるという異例の経緯を辿り、翌5月8日にはMicrosoftが実際の攻撃キャンペーンを確認・記録した。

最新状況(2026年7月30日時点・各ベンダーの一次情報で再確認)
  • 2本とも修正版が出ている。公開当初「パッチ未提供」だったCVE-2026-43500も提供済みで、緩和策よりカーネル更新が先。
  • Ubuntuは1回の更新で両方閉じる:両CVEが同一ビルド(focal 5.4.0-231.251 / jammy 5.15.0-181.191 / noble 6.8.0-124.124 / questing 6.17.0-35.35 / resolute 7.0.0-22.22)で修正済み。
  • 「全リリース影響」ではない。CVE-2026-43284はtrusty(14.04)・xenial(16.04)がnot-affected、CVE-2026-43500はさらにbionic(18.04)もnot-affected。
  • RHEL / AlmaLinux は CVE-2026-43284 だけ見ればよい。Red HatはRHEL 8/9/10すべてCVE-2026-43500を「Not affected」としており、RHSAも出ていない。
  • Amazon Linux 2023 も CVE-2026-43500 は「Not Affected」(kernel / kernel6.12 / kernel6.18)。Amazon Linux 2は両方がALAS2-2026-3302で閉じる。
  • ・野生での悪用がMicrosoftにより記録済み。SSH初期アクセス → ELF実行 → suでroot → GLPIデータ窃取の攻撃チェーン。
  • ・再起動できない環境の暫定策:esp4・esp6・rxrpcカーネルモジュールをblacklistに登録して無効化。
Dirty Frag(CVE-2026-43284/CVE-2026-43500)のディストリ別対応表。Ubuntu 20.04〜26.04は2本とも同一ビルドで修正、Ubuntu 18.04は43284のみ、14.04/16.04は対応不要、RHEL/AlmaLinux/RockyとAmazon Linux 2023は43284のみ、Amazon Linux 2は1つのALASで両方
「自分のディストリでどちらのCVEを直せばいいか」を1枚にまとめたもの。Ubuntu 20.04以降は2本が同じカーネルビルドで閉じ、RHEL系とAmazon Linux 2023はCVE-2026-43500がそもそも対象外。数値は Ubuntu Security / Red Hat Security Data / Amazon Linux ALAS から2026年7月30日に取得(図はローカル生成 HTML/CSS)。

Linuxカーネルセキュリティ全般の攻撃手法と防御フレームワークを体系的に理解したい場合は、サプライチェーンセキュリティ2026|攻撃手法・防御ツール・実践チェックリストも合わせて参照してほしい。

Dirty Frag(CVE-2026-43284)とは—Linuxカーネル全ディストリに影響する特権昇格脆弱性の概要

Dirty Fragという名称は、Linuxカーネルのネットワーク層が管理するソケットバッファ(sk_buff)の「frag」メンバに由来する。2022年のDirty Pipe、2026年4月のCopy Fail(CVE-2026-31431)と同様、読み取り専用のページキャッシュに対して非特権ユーザーが書き込みを行えてしまうという脆弱性クラスの延長線上に位置する。Copy Failから1か月も経たずに公開されたことから、The Record Mediaをはじめとする複数のメディアが「Linuxカーネルを襲った第2の主要バグ」と報じた。

Dirty Fragを一言で表すと
IPsec ESPとRxRPCの受信パスに存在するコピーオンライト漏れを悪用し、ゼロコピー転送(splice/sendfile)で固定されたページキャッシュページをカーネルが直接書き換えてしまうロジックバグ。非特権ユーザーが読み取れる任意のファイルのメモリ上の内容を改ざんでき、/usr/bin/suや/etc/passwdを上書きすることでroot権限を奪取できる。

Hyunwoo Kimはこの脆弱性について「タイミングウィンドウに依存しない決定論的なロジックバグであり、失敗してもカーネルパニックを引き起こさない」と説明している。従来の競合状態(race condition)を利用するLPEとは根本的に性質が異なり、成功率が事実上100%に近い点が防御側にとって特に深刻だ。

発見の背景として、Hyunwoo Kimは同系統のバグ「Copy Fail」の研究を通じてページキャッシュ書き込みという脆弱性クラスを深く理解し、同様の不備がESPとRxRPCにも存在することを突き止めた。研究者自身がPublic Disclosureの文書内で「Copy Failとの関係」を明示しており、同一ルートコーズに基づく異なる経路の発現と位置付けられる。

GitHubリポジトリ V4bel/dirtyfrag は公開直後から急速にスターを集め、セキュリティコミュニティの注目度の高さを示している。リポジトリにはポイントリリースごとの動作確認済みカーネルバージョンと、モジュールブラックリストによる即時ミティゲーションスクリプトが含まれている。

ページキャッシュとsk_buffフラグメント—脆弱性が生まれる技術的背景

Dirty Fragを理解するには、LinuxカーネルにおけるページキャッシュゼロコピーI/Oの仕組みを把握する必要がある。

Linuxページキャッシュの基本構造

Linuxカーネルはディスクから読み込んだファイルデータをメモリ上のページキャッシュ(Page Cache)に保持し、複数プロセスから共有参照できるようにする。/etc/passwd/usr/bin/suなどのシステムファイルは、読み取り専用であっても常にページキャッシュを通じてアクセスされる。

通常の書き込み操作では、カーネルはコピーオンライト(COW: Copy-on-Write)の原則に従い、共有ページへの変更前に必ずプライベートコピーを作成する。この仕組みにより、あるプロセスがファイル内容を変更しても他プロセスへの影響を防いでいる。

ゼロコピーI/Oとspliceが生み出す攻撃面

splice(2)sendfile(2)MSG_SPLICE_PAGESフラグを使うと、ユーザー空間を経由せずにカーネル内でデータを転送できる(ゼロコピー転送)。この仕組みでは、送信側がページキャッシュページへの参照(pinned reference)をsk_buffのfragスロットに直接渡す。送信側プロセスが依然としてそのページへの参照を保持したまま、ページがネットワークスタックに渡される。

Dirty Fragではこのゼロコピーの仕組みを悪用する。攻撃者は標的ファイル(/usr/bin/suなど)を読み取り専用でオープンし、spliceを使ってそのページキャッシュ参照をESP/RxRPCソケットのsk_buffフラグメントに植え付ける。その後、インプレース復号処理が発動すると、カーネルはCOWチェックを経ずにそのページに直接書き込んでしまう。

重要な点として、この書き込みはメモリ上のページキャッシュにのみ適用され、ディスク上の元のファイルは変更されない。そのため、ファイルの整合性をディスクで確認する従来のFIM(File Integrity Monitoring)ツールでは検出が困難であり、攻撃者にとって有利な特性となっている。

sk_buffのfragスロットと問題の核心

Linuxカーネルのsk_buff(ソケットバッファ)構造体は、分散・収集I/O用に複数の「フラグメント(frag)」を保持できる。送信側がspliceでページキャッシュページをsk_buffのfragスロットに連結した場合、そのページはカーネルが「所有」しているわけでなく、ユーザープロセスが依然として参照権を持つ外部バックドページとなる。

graph TD A["非特権ユーザープロセス"] -- "spliceでページキャッシュ参照を植え付け" --> B["sk_buff fragスロット"] B --> C{"受信パスでのCOWチェック"} C -- "正常: COWチェック通過" --> D["プライベートコピーへ書き込み
ページキャッシュ保護"] C -- "脆弱: COWチェック漏れ" --> E["ページキャッシュに直接書き込み
読み取り専用ページが汚染"] E --> F["usr/bin/su や etc/passwd が改ざん"] F --> G["非特権ユーザーがroot権限取得"] style E fill:#ff6b6b,color:#fff style F fill:#ff6b6b,color:#fff style G fill:#ff6b6b,color:#fff style D fill:#51cf66,color:#fff

Dirty Fragの核心は、ESP(IPsec暗号化)やRxRPC(Kerberosベース認証プロトコル)の受信パスが、このfragスロット内の外部バックドページに対して直接インプレース復号を行ってしまう点にある。通常はskb_cow_data()という関数がCOWチェックを行いプライベートコピーを作成するはずだが、特定の条件下でこのチェックが完全にスキップされる。

2つのCVEチェーンの仕組み—ESP4/ESP6とRxRPCの動作原理

Dirty Fragは2つの独立したCVEを使い分けることで、主要なLinuxディストリビューションを網羅する設計になっている。どちらも「ページキャッシュへの不正書き込み」という原始的能力(プリミティブ)を提供するが、必要な権限と依存モジュールが異なる。

CVE-2026-43284(CVSS 8.8/7.8):xfrm-ESP Page-Cache Write

xfrm(IPsec変換)フレームワークのesp4esp6モジュールに存在する脆弱性だ(CVSS v3.1スコアは出典で割れており、最も高い評価が 8.8、Red Hat / Amazon Linux / Ubuntu はいずれも 7.8)。ESPの受信パスで非線形sk_buff(paged fragを含むもの)に対してインプレース復号を行う際、skb_cow_data()のCOWチェックが特定の条件下でバイパスされる。その結果、攻撃者が制御するfragページ上に直接復号結果が書き込まれる。

この経路を使うには名前空間(namespace)作成権限が必要だが、多くのディストリビューションではデフォルトで非特権ユーザーが名前空間を作成できるよう設定されている。ただし、AppArmor等で厳格に制限しているディストリビューションでは単独では利用できない。

  • 脆弱性コミット: cac2661c53f3(2017年1月17日)以降のすべてのカーネル
  • パッチコミット: f4c50a4034e6(SKBFL_SHARED_FRAGフラグによる共有frag検出)
  • パッチ状況: 2026年5月8日に主要ディストリで提供開始

CVE-2026-43500(CVSS 7.8):RxRPC Page-Cache Write

RxRPCサブシステムのrxkad_verify_packet_1()関数に存在する脆弱性だ(CVSS v3.1スコア: 7.8)。Kerberosベースの認証プロトコルRxRPCの検証パスで、pcbc(fcrypt)アルゴリズムによる8バイトのインプレース復号がsplice固定ページに直接適用される。

この経路は名前空間作成権限を必要としない点が大きな特徴だ。ただしrxrpc.koモジュールがロードされている必要があり、主にUbuntuで標準搭載されている(多くのRHEL系ディストリはデフォルトでrxrpcを持たない)。

  • 脆弱性コミット: 2dc334f1a63a(2023年6月)以降のカーネル
  • パッチ状況: 提供済み。Ubuntuは focal 5.4.0-231.251 / jammy 5.15.0-181.191 / noble 6.8.0-124.124 以降で修正(CVE-2026-43284と同一ビルド)。上流は 7.1~rc3・6.8.y・6.17.y・7.0.6。RHEL 8/9/10とAmazon Linux 2023のkernelはNot affected

チェーン戦略:2つの経路で全ディストリをカバー

なぜ2つの脆弱性を組み合わせるのか
xfrm-ESPはRHEL・Fedora・openSUSEなど名前空間が使えるほぼすべての環境で動作するが、AppArmor制限が厳しいUbuntuでは制約を受けることがある。RxRPCはUbuntuのrxrpc.koに依存するが名前空間権限不要。2つを組み合わせることで、主要ディストリビューションの実質的な全網羅を実現している。
経路 CVE CVSS 必要権限 依存モジュール 主な対象ディストリ パッチ状況
xfrm-ESP CVE-2026-43284 8.8/7.8 名前空間作成権限 esp4 / esp6 RHEL・AlmaLinux・Fedora・openSUSE・Ubuntu・Amazon Linux 5/8以降 各ディストリで提供済み
RxRPC CVE-2026-43500 7.8 非特権ユーザーのみ rxrpc.ko 実質 Ubuntu 20.04以降(RHEL系・AL2023はNot affected) 提供済み(Ubuntuは43284と同一ビルド)
組み合わせ 両CVE いずれかを選択 いずれか 主要全ディストリ

影響範囲—CVE-2026-43284/CVE-2026-43500のディストリ別修正版カーネル

Dirty Fragの影響範囲は非常に広い。xfrm-ESP側は2017年から約9年にわたって潜在していたバグであり、RxRPC側は2023年6月以降の約3年間が対象となる。

ディストリ別の修正版カーネル一覧(2026年7月30日再確認)

「自分の環境は影響を受けるのか、どのバージョンまで上げればいいのか」だけを知りたい場合は、この表を見れば足りる。数字はUbuntu Security(CVEトラッカー)、Red Hat Security Data API、Amazon Linux ALASの各一次情報から取得した。

Ubuntu — 両CVEが同じビルドで閉じる

リリース コードネーム CVE-2026-43284 CVE-2026-43500
14.04 LTS trusty not-affected not-affected
16.04 LTS xenial not-affected not-affected
18.04 LTS bionic 4.15.0-251.263 で修正 not-affected
20.04 LTS focal 5.4.0-231.251 で修正 5.4.0-231.251 で修正
22.04 LTS jammy 5.15.0-181.191 で修正 5.15.0-181.191 で修正
24.04 LTS noble 6.8.0-124.124 で修正 6.8.0-124.124 で修正
25.10 questing 6.17.0-35.35 で修正 6.17.0-35.35 で修正
26.04 LTS resolute 7.0.0-22.22 で修正 7.0.0-22.22 で修正

20.04以降は両CVEの修正版カーネルが同一ビルド番号なので、apt upgrade して再起動すれば2本まとめて閉じる。上流(mainline)側の修正が入ったのは 7.1~rc3・6.8.y・6.17.y と、CVE-2026-43284が 7.0.5、CVE-2026-43500が 7.0.6 だ。

RHEL / AlmaLinux / CentOS Stream — 見るべきは CVE-2026-43284 だけ

製品 CVE-2026-43284 CVE-2026-43500
RHEL 8 kernel-4.18.0-553.124.1.el8_10(RHSA-2026:16195・5/12) Not affected
RHEL 9 kernel-5.14.0-611.55.1.el9_7(RHSA-2026:16206・5/12) Not affected
RHEL 10 kernel-6.12.0-124.56.1.el10_1(RHSA-2026:16062・5/11) Not affected
RHEL 6 / 7 Not affected Not affected
AlmaLinux / Rocky / CentOS Stream 上記RHEL相当のバージョンで修正 RHELに同じ(Not affected)

Red HatはRHEL 8/9/10のいずれについてもCVE-2026-43500を「Not affected」としており、この2本目に対するRHSAは発行されていない。AlmaLinuxやRocky LinuxはRHELのソースを再ビルドするため、同じ判断がそのまま当てはまる。「AlmaLinuxでrxrpc側の対処が必要では」と心配する必要はなく、43284の修正版カーネルへ上げれば足りる。

Amazon Linux — AL2は1つのALASで両方、AL2023は43284のみ

プラットフォーム CVE-2026-43284 CVE-2026-43500
Amazon Linux 2(Core kernel) ALAS2-2026-3302(5/9) ALAS2-2026-3302(5/9・同一)
AL2 Kernel-5.4 Extra ALAS2KERNEL-5.4-2026-121 ALAS2KERNEL-5.4-2026-121(同一)
AL2 Kernel-5.10 Extra ALAS2KERNEL-5.10-2026-118 ALAS2KERNEL-5.10-2026-118(同一)
AL2 Kernel-5.15 Extra ALAS2KERNEL-5.15-2026-102 Not Affected
Amazon Linux 2023(kernel) ALAS2023-2026-1694(5/9) Not Affected
AL2023 kernel6.12 / kernel6.18 Not Affected

Amazon Linux 2は1つのアドバイザリ(ALAS2-2026-3302)で両CVEが閉じる。Amazon Linux 2023については通常のkernelパッケージがCVE-2026-43500の対象外で、影響するのはライブパッチ(kernel-livepatch-6.12.83-113.160 / ALAS2023LIVEPATCH-2026-171・5/25)のみだった。

CVE-2026-43284のCVSSは出典で割れている
NVDにはCVE-2026-43284について3件のCVSS v3.1が併記されており、8.8AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H)と7.8が2件(AC:H版とS:U版)並ぶ。差はScope(S:C=影響が他コンポーネントへ及ぶ/S:U=及ばない)と攻撃条件の複雑さの評価で、Red Hat・Amazon Linux・Ubuntuはいずれも7.8を採用している(NVD自身のスコアはCVE-2026-43284には付与されておらず、CVE-2026-43500には7.8を付与)。社内の脆弱性管理台帳に載せるときは、どの出典のスコアなのかを併記しておくと後で揉めない。

自分のカーネルが修正版かどうかを確認する

上の表と手元のカーネルを突き合わせるだけで判定できる。まず稼働中のカーネルを取る。

# 稼働中のカーネル(再起動していないと更新後も古い値が出る点に注意)
uname -r

# Ubuntu / Debian系: インストール済みの linux-image と稼働中の版を並べる
dpkg -l 'linux-image-*' 2>/dev/null | awk '$1=="ii"{print $2, $3}'

# RHEL / AlmaLinux / Rocky / Amazon Linux 系
rpm -q kernel kernel-rt 2>/dev/null

uname -r の値が上の表の「修正版」以上なら対処済みだ。Ubuntuの 6.8.0-124.124 のような表記は、uname -r では 6.8.0-124-generic の形で出るため、ABI部分(-124)を比較する。パッケージ側の完全な版番号は dpkg -l の出力(例 6.8.0-124.124)で確認できる。

「更新したのに直っていない」の典型は再起動忘れ
カーネルパッケージを入れ替えても、再起動するまで稼働中のカーネルは古いままだ。uname -r(稼働中)と dpkg -l / rpm -q kernel(インストール済み)がずれていたら再起動待ちの状態。Ubuntuなら ls /var/run/reboot-required が存在するかどうかでも判定できる。ライブパッチ(Amazon Linuxのkernel-livepatch-*、RHELのkpatch-patch)を使っている場合は再起動せずに閉じられるが、その場合はライブパッチ側のバージョンを確認する必要がある。

なお、そもそも該当モジュールが自環境で使われているかは次で分かる。ロードされていなければ、パッチ適用までの実質的な露出は小さい。

# esp4 / esp6 / rxrpc がロード済みか(1行も出なければ未ロード)
lsmod | grep -E '^(esp4|esp6|rxrpc)\b'

# 未ロードでも自動ロードされうるので、モジュールが存在するかも見る
find /lib/modules/$(uname -r) -name 'esp[46].ko*' -o -name 'rxrpc.ko*' 2>/dev/null

クラウド環境への影響

AWS・GCP・Azureなどのクラウド環境でもLinuxベースのインスタンスはすべて影響を受ける可能性がある。特に多テナント環境(複数ユーザーが同一ホスト上で動く場合)では、ホストカーネルへのLPEがコンテナブレイクアウトに直結するリスクがある。

Wiz Blogの分析では、「Kubernetesのデフォルトseccompプロファイルを持つハードニングされたコンテナ環境ではリスクが低減される」と指摘している。ただし、仮想マシンや--privilegedコンテナ、アクセス制限が緩い環境では重大なリスクが残存する。

AWS公式のセキュリティアドバイザリ(AWS-2026-027)では、Amazon Linux 2023向けの対応状況と暫定ミティゲーション手順が公開されている。マネージドKubernetesサービス(GKE・AKS・EKS)のコントロールプレーンへのパッチ適用は各クラウドプロバイダーが自動実施している。

Androidへの影響

AndroidはLinuxカーネルをベースとするが、Dirty Fragの主要な経路については以下の理由から標準的なAndroid端末での悪用は限定的だ。

・標準AOSPはrxrpc.koを含まないため、CVE-2026-43500の経路は適用されない。
・Androidのカーネルはネットワーク構成が一般的なサーバーLinuxと大きく異なり、IPsec ESPの利用形態も制限されている。
・ただし、カスタムカーネルを搭載したAndroid派生OS(カスタムROM等)や、ルート化されたデバイスでは影響を受ける可能性がある。

Googleは2026年5月のAndroidセキュリティ情報にてESP関連のカーネルパッチの適用計画を含めることを発表した。Pixelデバイスは2026年6月のセキュリティアップデートにてパッチが適用される見通しだ。

野生での悪用確認—Microsoftが記録した攻撃チェーン

Dirty Fragの公開翌日となる2026年5月8日、MicrosoftのセキュリティブログがDirty FragまたはCopy Fail技術と整合する「限定的な野生での活動(limited in-the-wild activity)」を記録・公開した。これは本脆弱性の深刻さを裏付けるとともに、防御側が暫定ミティゲーションを急ぐ必要性を改めて示している。

Microsoftが記録した攻撃シーケンス

Microsoftが観測した攻撃は以下の手順で進行した。

flowchart TD A["初期アクセス
SSH経由で非特権シェル取得"] --> B["権限昇格
ELFバイナリ./updateを実行
suコマンドでroot取得"] B --> C["横展開
GLPIのLDAP認証ファイル改ざん"] C --> D["情報収集
システム偵察・セッションデータアクセス"] D --> E["痕跡隠滅
セッションファイル削除・上書き"] style A fill:#e67e22,color:#fff style B fill:#c0392b,color:#fff style C fill:#8e44ad,color:#fff style D fill:#2980b9,color:#fff style E fill:#27ae60,color:#fff

攻撃の各ステップを詳しく見てみよう。

Step 1: 初期アクセス — 攻撃者は外部からSSH接続でLinuxサーバーに侵入し、インタラクティブシェルを確立した。初期アクセスは非特権ユーザー権限でのログインだ。このステップ自体はDirty Fragとは無関係で、フィッシングや認証情報窃取で成立したと推測される。

Step 2: 特権昇格./updateという名称のELFバイナリを実行することでDirty Fragエクスプロイトが発動し、suコマンド経由でroot権限を取得した。Dirty Fragの典型的な悪用では、/usr/bin/suのメモリ上の内容(最初の192バイト)を改ざんした悪意あるELFコードで置き換え、su実行時にroot権限でシェルを起動させる。

Step 3: 横展開と改ざん — root権限取得後、攻撃者はGLPI(ITアセット管理ツール)のLDAP認証設定ファイルを改ざんした。これにより認証バイパスや内部ネットワークへの横展開が可能になる。

Step 4: 情報収集と痕跡隠滅 — システムの偵察を実行した後、攻撃者は残留するセッションファイルを読み取り、その後強制的に上書き・削除した。これは発見を困難にするためのアンチフォレンジック行為だ。

検出の困難さとIOC

Dirty Fragの攻撃が特に厄介な点は、ファイル改ざんがメモリ上のページキャッシュにのみ適用され、ディスク上の実体は変更されないことだ。そのため、ファイルハッシュの整合性チェックやFIMツールでは検出できない。防御チームが参照すべき指標(IOC候補)は以下のとおりだ。

suコマンドへの異常なアクセスパターン(通常使わないユーザーがsuを実行)。
dmesg/var/log/kern.logでのモジュールロード/アンロードの記録。
./updateなど不審な名称のELFバイナリの実行ログ(auditdで捕捉可能)。
・GLPI等のアプリケーション設定ファイルへの予期しない変更(ディスク上の変更として現れる場合)。
・非特権ユーザーによるmodinfolsmodコマンドの実行(情報収集フェーズ)。

防御チームへの警告
Dirty Fragの悪用はパッチ公開直後から観測されている。パッチ未適用かつモジュールブラックリスト未設定のシステムは既に悪用対象になっている可能性がある。ミティゲーションの適用状況を今すぐ確認すること。

Dirty Pipeファミリーの系譜—Copy FailからDirty Fragへの変遷

Dirty Fragは2022年のDirty Pipe発見以来続く、Linuxカーネルの「ページキャッシュ書き込み」脆弱性クラスの最新版と言える。Hyunwoo Kim本人も公開文書内でこの系譜を明示している。The Record Mediaはこの文脈からDirty Fragを「Linuxカーネルを襲った第2の主要バグ」と報じており、業界全体で「1か月間に2つのページキャッシュ書き込みLPEが登場した」という重大性を強調している。

ページキャッシュ書き込みバグクラスの変遷

flowchart LR A["2022年
Dirty Pipe
CVE-2022-0847
pipe_buffer フラグ漏れ"] --> B["2026年4月
Copy Fail
CVE-2026-31431
authencesn and AF_ALG
4バイト任意書き込み"] B --> C["2026年5月
Dirty Frag
CVE-2026-43284 and 43500
ESP と RxRPC
2経路チェーン
野生での悪用確認"] style A fill:#4a90d9,color:#fff style B fill:#e67e22,color:#fff style C fill:#c0392b,color:#fff

技術的な差異:3世代の比較

項目 Dirty Pipe(2022) Copy Fail(2026-04) Dirty Frag(2026-05)
悪用対象 pipe_buffer authencesn + AF_ALG sk_buff frag(ESP/RxRPC)
書き込みサイズ 任意 4バイト 4〜8バイト以上
タイミング依存 無(決定論的)
必要権限 非特権 非特権 非特権(経路依存)
影響ディストリ 全Linux 主要ディストリ 事実上全ディストリ
CVE CVE-2022-0847 CVE-2026-31431 CVE-2026-43284 / 43500
CVSS 7.8 8.8 / 7.8
パッチ状況(発見時) 開示と同時 開示と同時 一部なし(embargo破棄)
野生での悪用 あり 確認中 あり(Microsoft確認)

Dirty Fragが過去2つのバグと最も異なる点は、「embargo破棄」という前代未聞の経緯でパッチ未適用のまま公開され、しかも公開翌日には野生での悪用が確認されたという点だ。通常のresponsible disclosureでは開示前にパッチが用意されるが、Dirty Fragでは第三者が独立して脆弱性を発見・公開したため、カーネル開発者がパッチを準備する前にPoCが出回ることになった。

Copy Fail(CVE-2026-31431)との関係については、当サイトの解説記事「Copy Fail(CVE-2026-31431)解説:Linuxカーネル脆弱性とEC2/ECS/EKSへの影響」で詳しく取り上げているので参照してほしい。

即時ミティゲーションと防御策—今すぐ実行できる対処法

Dirty Fragに対して現時点で取れる防御策は、脆弱なカーネルモジュールの無効化カーネルパッチの適用の2軸だ。CVE-2026-43284については主要ディストリでパッチが提供されているため、可能であればパッチ適用を優先すること。

Step 1:脆弱モジュールのブラックリスト登録(即時適用可)

最も迅速に実施できるミティゲーションはモジュールのブラックリスト登録だ。以下の設定ファイルを作成し、再起動後にモジュールがロードされないようにする。

# /etc/modprobe.d/dirtyfrag.conf を作成
printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' \
  | sudo tee /etc/modprobe.d/dirtyfrag.conf

Ubuntu環境では、initramfsの再生成も必要だ。

# Ubuntu: initramfsを再生成してブラックリストを有効化
sudo update-initramfs -u -k all

既にモジュールがロード済みの場合は、以下で即時アンロードを試みる。

# 現在ロード済みかどうかを確認
lsmod | grep -E "^(esp4|esp6|rxrpc)"

# ロードされていた場合は除去(使用中プロセスがある場合は失敗することがある)
sudo rmmod esp4 esp6 rxrpc 2>/dev/null || true

# ページキャッシュのクリア(汚染済みの場合の後処理)
echo 3 | sudo tee /proc/sys/vm/drop_caches
注意事項
esp4・esp6モジュールはIPsec VPNの通信に使用される。業務でIPsec VPN(SiteToSite・RemoteAccess)を利用しているシステムでは、無効化前に代替手段またはパッチ適用タイミングを評価すること。rxrpcはAFS(Andrew File System)やKerberos認証が使われる環境に影響する可能性がある。

Step 2:モジュールのロード状況確認スクリプト

以下のスクリプトで、対象モジュールのロード状況を確認できる。インフラ自動化ツール(Ansible・Chef等)から実行してシステム全体の状況を把握するのに使える。

#!/bin/bash
# check_dirtyfrag.sh — Dirty Frag影響確認スクリプト(防御用)
echo "=== Dirty Frag (CVE-2026-43284/43500) モジュール確認 ==="
echo "カーネルバージョン: $(uname -r)"

for mod in esp4 esp6 rxrpc; do
  if lsmod | grep -q "^${mod}"; then
    echo "[警告] ${mod}: ロード済み — ブラックリスト登録を推奨"
  elif modinfo "${mod}" &>/dev/null; then
    echo "[注意] ${mod}: 利用可能(未ロード) — ブラックリスト登録を推奨"
  else
    echo "[OK]  ${mod}: システムに存在しない"
  fi
done

echo ""
echo "ブラックリスト設定の確認:"
cat /etc/modprobe.d/dirtyfrag.conf 2>/dev/null || echo "  ミティゲーション未適用"

Step 3:カーネルパッチの適用(正式対処)

xfrm-ESP側(CVE-2026-43284)のパッチは2026年5月7日にnetdevツリーにマージされ、翌5月8日には主要ディストリビューションでパッケージ提供が始まった。修正の核心はSKBFL_SHARED_FRAGフラグの導入だ。splice固定のページキャッシュページを含むsk_buffにこのフラグをセットし、受信パスで確実にskb_cow_data()が呼ばれるようにする。

各ディストリビューションのパッチ対応状況(2026年7月30日現在。バージョン単位の一覧は前掲の「ディストリ別の修正版カーネル一覧」を参照):

ディストリ CVE-2026-43284(ESP) CVE-2026-43500(RxRPC) 確認・適用コマンド
Ubuntu 20.04〜26.04 提供済み 提供済み(43284と同一ビルド) apt-get update && apt-get upgrade linux-image-*
Ubuntu 18.04 (bionic) 提供済み4.15.0-251.263 not-affected apt-get update && apt-get upgrade linux-image-*
Ubuntu 14.04 / 16.04 not-affected not-affected 対応不要
RHEL 8 / 9 / 10 提供済み(RHSA-2026:16195 / 16206 / 16062) Not affected dnf update kernel
AlmaLinux / Rocky / CentOS Stream 提供済み(RHEL相当) Not affected dnf update kernel
Amazon Linux 2 提供済みALAS2-2026-3302 提供済み(同一ALAS) yum update kernel
Amazon Linux 2023 提供済みALAS2023-2026-1694 Not Affected(kernel) dnf update kernel
Fedora / openSUSE 提供済み(最新カーネルへ追随) ディストリの判定に従う dnf update kernel / zypper update kernel*

パッチを適用した後は、モジュールブラックリスト設定を削除してIPsec機能を復元できる。

# パッチ適用後にミティゲーションを解除する場合
sudo rm /etc/modprobe.d/dirtyfrag.conf
sudo update-initramfs -u -k all  # Ubuntu の場合
sudo reboot

AppArmorによる補完的防御

Ubuntu環境では、AppArmorプロファイルで名前空間作成を制限することでxfrm-ESP経路の緩和策となる。ただしRxRPC経路には効果がないため、モジュールブラックリストと組み合わせることが重要だ。

# Ubuntu: ユーザー名前空間の制限設定(補完的対策)
# kernel.unprivileged_userns_clone=0 は副作用が大きいため慎重に適用すること
sysctl -n kernel.unprivileged_userns_clone

脆弱性管理の体系的なアプローチについては、Faraday徹底解説:6.5kスターの脆弱性管理プラットフォームOSS、80+セキュリティツール統合も参考になる。

カーネルkillswitch提案—Sasha Levinが示す緊急緩和策の新たな形

Dirty FragとCopy Failが相次いで公開された翌日の2026年5月7日、Linux安定カーネル共同メンテナ兼NVIDIAエンジニアのSasha Levinがlore.kernel.orgに新たなパッチセットを投稿した。「カーネルkillswitch」と呼ばれるこの仕組みは、脆弱な関数を一時的に無効化してエラーを返すことで、正式パッチが届くまでの緊急緩和策として機能することを目的としている。ただし、このパッチは現時点でレビュー中であり、Linuxカーネルには未採用だ。提案段階の動向として紹介する。

仕組みと特徴

killswitchはsecurityfsインターフェース経由で管理者が操作する。特定の関数をkillswitch対象に指定すると、その関数は実行される代わりに即座にエラーを返す。この変更はランタイムに反映され、管理者が解除するかシステムを再起動するまで有効だ。

ライブパッチとの違い
killswitchはライブパッチングではない。脆弱なコードを修正版に置き換えるのではなく、選択された関数が実行されることをブロックするだけだ。根本的な修正には正式なカーネルアップデートが依然として必要であり、あくまで「悪用経路を塞ぐ」緊急措置として位置づけられている。

対象となる機能

提案が想定する対象は、AF_ALG・ksmbd・nf_tables・vsock・ax25 など「多くのシステムで日常的に使われない機能」だ。Dirty FragのESP/RxRPCもこのカテゴリに含まれうる。日常業務への影響を最小化しつつ脆弱な経路を素早く遮断することがコンセプトの核心だ。

パッチにはCopy Fail(CVE-2026-31431)のAF_ALGパスに対するセルフテストが含まれており、killswitchが実際に機能することの実証として使われている。

現在のステータス

このパッチはlore.kernel.orgでのレビュー段階にあり、2026年5月時点でLinuxカーネルには未採用だ。開発者コミュニティでは「本番環境で重要な機能を誤って無効化するリスク」や悪用可能性についての議論が続いている。モジュールブラックリスト(現行の推奨緩和策)と比較して、カーネルレベルでの一元管理ができる点が優位性だが、採用にはなお時間を要する見通しだ。

開示経緯とエンブレゴ破棄—異例の公開プロセスが示すもの

Dirty Fragの公開プロセスは、脆弱性開示(Coordinated Vulnerability Disclosure)のあり方について重要な教訓を含んでいる。

タイムライン

日付 出来事
2026年4月30日 Hyunwoo KimがLinuxカーネルセキュリティチームに非公開報告
2026年5月7日 第三者がエクスプロイトを無断公開 → Kim氏がoss-securityでDirty Fragを完全公開
2026年5月7日 xfrm-ESPパッチがnetdevツリーにマージ(CVE-2026-43284)
2026年5月8日 Red Hat・AlmaLinux・Ubuntuがパッチを公開
2026年5月8日 Microsoftが野生での悪用キャンペーンを記録・公表
2026年5月11日 CVE-2026-43500(RxRPC)が採番・公開(Ubuntu CVEトラッカー登録日)
2026年5月12日 Red HatがRHEL 8/9向けRHSAを公開(RHSA-2026:16195 / 16206)
2026年5月25日 Amazon Linux 2023のライブパッチでCVE-2026-43500対応(ALAS2023LIVEPATCH-2026-171)
2026年7月15日 NVDが両CVEのエントリを更新(lastModified)
2026年7月30日 本記事で各ベンダー一次情報を再確認。2本とも修正版が出そろっていることを確認
エンブレゴ破棄とは
脆弱性の責任ある開示プロセスでは、発見者・影響を受けるベンダー・CERTなどが協調して「パッチ公開まで詳細を非公開にする」合意(エンブレゴ)を結ぶ。第三者が合意前に同じ脆弱性を独立発見・公開した場合、エンブレゴを維持する意味がなくなり、元の発見者も完全な情報を公開せざるを得なくなる。

エンブレゴ破棄によるパッチなし状態での公開は、防御側にとって対応時間が極端に短くなるという最悪のシナリオだ。通常のCoordinated Disclosureでは「公開 = パッチ利用可能」だが、Dirty Fragでは「公開 = PoC公開、かつパッチ未提供(一部)」という状態が生まれた。その結果、公開翌日には実際の攻撃キャンペーンが記録されるに至った。

セキュリティコミュニティの反応

Hacker Newsのスレッドでは、エンブレゴ破棄のリスクと独立発見の現実についての議論が活発に行われた。「研究者が独立発見した場合の開示義務とは何か」「パッチなし公開は許容されるか」という根本的な問いは、セキュリティ研究コミュニティが長く抱えてきた未解決課題だ。

防御側の組織としては、このような「パッチなし公開」が現実に起こり得ることを前提として、脆弱性インテリジェンス(oss-security・CERT・クラウドプロバイダーのアドバイザリ)を常時監視し、パッチ待ちの間もモジュール無効化等で素早く対応できる体制を整えておくことが重要だ。

Linuxカーネルの権限昇格バイナリの悪用経路については、GTFOBins:Linuxシステム管理者のための権限昇格・脱出ツール集が攻撃者の思考パターンを理解する上で参考になる。

組織が今すべきこと—多層防御チェックリスト

Dirty Fragへの対応は単なるカーネルアップデートにとどまらず、組織全体のセキュリティポスチャを点検するきっかけとして活用できる。野生での悪用が確認された今、対応を後回しにするコストは急速に高まっている。

インフラチーム向け即時アクション

今すぐ実行できる4ステップ
  • ・全Linuxサーバーでlsmod | grep -E "esp4|esp6|rxrpc"を実行してモジュールのロード状況を確認する。
  • ・影響を受けるモジュールをブラックリストに登録して再起動を計画する(IPsec利用を事前確認すること)。
  • ・CVE-2026-43284のパッチがリリースされたディストリ(Ubuntu / RHEL / AlmaLinux)では速やかにカーネルをアップデートする。
  • ・CVE-2026-43500のパッチが出次第即時適用できるよう、ディストリビューションのセキュリティアドバイザリを購読設定する。

コンテナ・クラウド環境

・ECS/EKS/GKE等のマネージドKubernetesでは、コントロールプレーンはクラウドプロバイダーがパッチ適用する。ノードグループ(EC2インスタンス等)は自己管理のため手動での対応が必要だ。
・コンテナ内からホストカーネルの脆弱性を悪用できるリスクがある。特に--privilegedコンテナやhostNetwork: true設定のPodは優先的に見直すこと。
・Wiz Blogの分析によると、Kubernetesのデフォルトseccompプロファイルを持つハードニングされた環境ではリスクが低減されるが、依然としてモジュールブラックリストが推奨される。
・DockerのデフォルトseccompプロファイルはIPsec/RxRPC関連のシステムコールをブロックしないため、カスタムseccompプロファイルまたはモジュールブラックリストが必要だ。

セキュリティ運用チーム向けチェックリスト

カテゴリ 確認項目 優先度
資産管理 全Linuxシステムのカーネルバージョンとモジュール構成を把握しているか 緊急
パッチ管理 CVE-2026-43284のパッチをUbuntu/RHEL/AlmaLinuxに既に適用したか 緊急
暫定対策 esp4・esp6・rxrpcのブラックリスト設定を全システムに自動展開できるか 緊急
侵害確認 suコマンドへの異常なアクセス・ELFバイナリ実行・GLPI設定変更を確認したか 緊急
ログ監視 dmesgや/var/log/kernに異常なモジュールロード/アンロードの記録が残っているか確認したか
コンテナ ホストカーネルを共有するコンテナでのescapeリスクを評価したか
クラウド クラウドプロバイダーのアドバイザリを確認し、自社管理のノードに適用計画を立てたか
サードパーティ 使用しているOSSやフレームワークがLinuxカーネルモジュールを前提としていないか確認したか
インテリジェンス oss-securityリスト・CISA KEV・クラウドアドバイザリの購読設定をしているか

ソフトウェア開発者向けの注意点

アプリケーション開発者はカーネルパッチを直接コントロールできないが、以下の点でリスクを下げられる。

・コンテナビルドパイプラインにカーネルセキュリティスキャンを組み込む。
・本番環境のDockerイメージにはseccomp制限を適用する。
・LPE脆弱性の悪用可能性を下げるため、アプリケーションの実行権限を最小化する(非rootユーザーで実行、CAP_NET_ADMIN等の不要なCapabilityを削除する)。

まとめ

Dirty Frag(CVE-2026-43284/CVE-2026-43500)は、Linuxカーネルのページキャッシュ書き込みという脆弱性クラスが2026年においても深刻なリスクであることを改めて示した。Copy Failに続く「Linuxカーネルを襲った第2の主要バグ」として、2つのCVEをチェーンして主要ディストリビューション全域をカバーする設計と、タイミング依存なしの決定論的な動作が特徴だ。公開翌日に野生での悪用が確認された事実は、パッチなし公開リスクを改めて浮き彫りにした。

防御側が押さえるべき4つのポイント(2026年5月11日時点)
  • パッチ適用優先:CVE-2026-43284のパッチがUbuntu/RHEL/AlmaLinuxで提供済み。パッチ可能なシステムは即時適用する。
  • 即時ミティゲーション:パッチ未提供のシステムはesp4・esp6・rxrpcをblacklistに登録。IPsec利用環境は業務影響を先に確認すること。
  • 侵害確認:Microsoftの記録した攻撃チェーン(su異常実行・ELFバイナリ実行・GLPI設定変更)を指標として既存ログを確認する。
  • 多層防御:コンテナのseccomp・AppArmor・最小権限設計を組み合わせ、カーネル脆弱性が即ホスト侵害に直結しないアーキテクチャを作る。

エンブレゴ破棄という前代未聞の事態と、その翌日に記録された野生での悪用は、脆弱性インテリジェンスを受動的に待つだけでなくoss-securityやCISA KEVを積極的に監視し、パッチなし状態でも迅速に緩和策を取れる運用体制の重要性を改めて浮き彫りにした。

参照ソース

本記事の「ディストリ別の修正版カーネル一覧」は、以下のベンダー一次情報を2026年7月30日に再取得して作成した。