SJ blog
security
A

信頼度ランク

S 公式ソース確認済み
A 成功実績多数・失敗例少数
B 賛否両論
C 動作未確認・セキュリティリスク高
Z 個人所感

Dirty Frag(CVE-2026-43284/43500)——LinuxカーネルのIPsec・RxRPC欠陥で非特権ユーザーがrootになれる仕組みと対策

Linuxカーネルに存在するDirty Frag(CVE-2026-43284/43500)はIPsec(ESP)とRxRPCのページキャッシュ書き込みプリミティブを悪用し、非特権ユーザーが1コマンドでrootを取得できるLPE。公開PoCで実証済み、コンテナ脱出も可能。

一言結論

Dirty FragはLinuxカーネルのIPsec(ESP)とRxRPCが持つページキャッシュ書き込みプリミティブを連鎖させ、非特権ローカルユーザーが1コマンドでrootに昇格できるLPE。公開PoCが存在しコンテナ脱出にも悪用可能。カーネル更新が第一の対策で、更新不能環境ではモジュールのブラックリスト登録が有効。

何が起きたか

2026年5月7日、セキュリティ研究者がLinuxカーネルに存在する深刻なローカル権限昇格(LPE)脆弱性チェーンを公開した。Dirty Frag と命名されたこの脆弱性は2つのCVEで構成される。

脆弱性情報:
  CVE-2026-43284  xfrm-ESP(IPsec)ページキャッシュ書き込み
                  CVSS 3.1: 8.8 HIGH(kernel.org CNA採点)
  CVE-2026-43500  RxRPCページキャッシュ書き込み
                  CVSS 3.1: 7.8 HIGH(Canonical採点)

公開日:       2026年5月7日
PoC公開:     あり(1コマンドでroot取得可能)
パッチ公開:  2026年5月8日(カーネルメインライン)
影響ディス:  Ubuntu, RHEL, CentOS Stream, AlmaLinux,
             Fedora, openSUSE, OpenShift

MicrosoftセキュリティブログはDirty Fragを「ポスト侵害リスクを拡大させる積極的な攻撃」として観測済みと報告している。


脆弱性の仕組み

根本原因:インプレース復号の所有権チェック欠如

IPsecの暗号化プロトコル(ESP)とRxRPCは受信ネットワークデータをコピーせずインプレースで復号する最適化を採用している。

通常の安全な設計:
  ネットワーク受信バッファ → [コピー] → 新規バッファ → 復号処理
  利点: 元のメモリ領域を汚染しない

脆弱な実装(Dirty Frag):
  ネットワーク受信バッファ → 直接インプレース復号
  欠陥: カーネルは「そのメモリが誰のものか」を検証しない

この欠陥により、攻撃者は以下の手順で権限昇格を実現できる。

攻撃フロー(概念):

1. 偽のネットワークパケットを作成
   - ペイロードメモリを /usr/bin/su のページキャッシュから借用

2. カーネルの復号処理を自分の鍵で設定
   - 「復号後の出力」= 攻撃者が選んだ任意バイト列

3. カーネルがインプレース復号を実行
   - 実際には /usr/bin/su のRAM上のコピーに
     攻撃者のシェルコードを書き込む

4. su コマンド実行
   - すでにRAM内のsu はシェルコードになっている
   → 非特権ユーザーが root を取得

コンテナ環境での追加リスク

コンテナデプロイメントでは、コンテナ脱出(Container Escape) にも悪用できる。

脆弱なシナリオ:
  コンテナ内の非特権プロセス
    → Dirty Frag LPE → コンテナ内root
    → /usr/bin/su のページキャッシュはホストと共有
    → ホスト権限昇格へ

影響範囲:
  ✓ 非コンテナ環境: ローカルユーザー → root
  ✓ コンテナ環境: コンテナ内 → ホストroot(環境依存)
  ✗ リモート悪用: ローカルアクセスが前提

影響を受けるカーネルコンポーネント

コンポーネントCVEプロトコル用途
esp4 / esp6CVE-2026-43284IPsec ESPVPN, サイト間暗号化
rxrpcCVE-2026-43500RxRPCAFS(Andrew File System)
xfrm ESP-in-TCPCVE-2026-46300IPsecESP-over-TCP

CVE-2026-46300は後から追加されたFragnesia亜種で、RHEL Security Advisory RHSB-2026-003に含まれている。


対策

優先度1: カーネルアップデート(推奨)

# Ubuntu/Debian
sudo apt update && sudo apt upgrade linux-image-generic

# RHEL/CentOS/AlmaLinux
sudo dnf update kernel

# Fedora
sudo dnf update kernel

# openSUSE
sudo zypper update -t package kernel-default

# アップデート後は再起動が必要
sudo reboot

各ディストリビューションのパッチ状況:

  • Ubuntu: パッチ済みカーネルとKernel Livepatches(ダウンタイムなし)が提供済み
  • RHEL/CentOS Stream/AlmaLinux: RHSB-2026-003対応済み
  • CloudLinux: KernelCareライブパッチ提供済み

優先度2: モジュールのブラックリスト登録(更新不能環境向け)

# /etc/modprobe.d/dirty-frag-mitigation.conf を作成

# ESP/IPsecが不要な場合
echo "blacklist esp4" | sudo tee -a /etc/modprobe.d/dirty-frag-mitigation.conf
echo "blacklist esp6" | sudo tee -a /etc/modprobe.d/dirty-frag-mitigation.conf
echo "blacklist xfrm4_mode_tunnel" | sudo tee -a /etc/modprobe.d/dirty-frag-mitigation.conf

# AFS/RxRPCが不要な場合
echo "blacklist rxrpc" | sudo tee -a /etc/modprobe.d/dirty-frag-mitigation.conf

sudo depmod -a && sudo dracut -f

⚠️ IPsecを使用しているシステムではVPN/サイト間通信が停止する。EPSモジュールのブラックリスト登録はIPsecが必須でない環境にのみ適用すること。

優先度3: 非特権ユーザー名前空間の無効化(軽減策)

# カーネルランタイムパラメータ変更(一時的)
sudo sysctl -w kernel.unprivileged_userns_clone=0

# 永続化
echo "kernel.unprivileged_userns_clone=0" | sudo tee -a /etc/sysctl.d/99-dirty-frag.conf
sudo sysctl -p /etc/sysctl.d/99-dirty-frag.conf

ただしこれはリスク軽減であり、完全な修正ではない。DockerやNamespaceを使う一部ツールが動作しなくなる可能性がある。


影響確認コマンド

# 現在のカーネルバージョン確認
uname -r

# パッチ済みコミット(メインライン)を含むか確認
# CVE-2026-43284: f4c50a4034e6 を含むか
# CVE-2026-43500: aa54b1d27fe0 を含むか

# espモジュールのロード状況確認
lsmod | grep -E 'esp|rxrpc|xfrm'

# 非特権ユーザー名前空間の状態確認
cat /proc/sys/kernel/unprivileged_userns_clone

落とし穴・注意点

  • PoCは1コマンドで動作する: ローカルアクセスさえあれば専門知識なしに悪用できる。内部脅威(malicious insider)・CI/CDパイプラインのビルドワーカー侵害・Webアプリ経由でシェルを取られた段階でも即時root昇格に利用される
  • コンテナ分離は完全保護ではない: AppArmor/seccompプロファイルで緩和できるケースもあるが、共有ページキャッシュを持つ環境では脱出リスクが残る
  • カーネルライブパッチを使うなら提供元を確認する: TuxCare(KernelCare)はパッチ提供済みだが、使用前にリポジトリとハッシュを検証すること
  • CVE-2026-46300(Fragnesia)も忘れずに: RHELのSecurity Advisory RHSB-2026-003には3つ目のCVEが含まれる

まとめ

Dirty FragはIPsecの最適化パスを悪用してページキャッシュを書き換えるという、技術的に巧妙なLPE手法だ。公開PoCで即座に悪用可能な点、コンテナ脱出にも使える点が深刻さを増している。対策の優先順位はカーネル更新 → モジュールブラックリスト → 名前空間無効化の順で、再起動を伴うカーネル更新が根本的な解決策だ。


参考リンク

未確認事項: CVE-2026-46300(Fragnesia亜種)のCVSSスコアはRHEL発表時点では未採点。コンテナ脱出の可否は使用するコンテナランタイムとseccompプロファイルの設定に依存するため、環境ごとの検証が必要。