
汎用 Linux カーネル ローカル権限昇格
| フィールド | 詳細 |
|---|---|
| CVE | CVE-2026-43284 (xfrm/ESP) + CVE-2026-43500 (RxRPC) |
| 通称 | Dirty Frag |
| CVSS | 7.8 HIGH |
| タイプ | ローカル権限昇格 (LPE) |
| 導入 | Linux kernel 4.10 (2017, commit cac2661c53f3) |
| 修正 | Mainline commits f4c50a4034e6 / aa54b1d27fe0 |
| 必要条件 | ローカルの非特権シェルアクセス |
| リモートベクター | なし — ローカルのみ |
| 公開日 | 2026年5月7日 (Hyunwoo Kim @v4bel) |
Linux カーネルの xfrm/ESP および RxRPC サブシステムにおけるロジック上の欠陥により、非特権のローカルユーザーがシステム上の任意の読み取り可能ファイル(/usr/bin/su などの setuid バイナリを含む)のページキャッシュに対して決定論的で制御された任意書き込みを実行できます。
根本原因は、特に splice(2) または sendfile(2) を使用する際に、ページキャッシュページを参照する共有ソケットバッファ (skb) フラグメントの安全でないインプレース復号にあります。これにより強力な任意ページキャッシュ書き込みプリミティブが提供され、メモリ内の機密ファイルを上書きして完全な root アクセスを達成するために利用できます。
2つの異なるプリミティブが連鎖されて、ユニバーサルなカバレッジを実現します:
xfrm-ESP Page-Cache Write: Copy Fail と同じシンクを共有しますが、algif_aead の有無にかかわらず esp4/esp6 モジュールを介してトリガーされます。名前空間作成権限が必要です。RxRPC Page-Cache Write: 名前空間権限は必要ありませんが、rxrpc.ko が存在する必要があります(Ubuntu ではデフォルトでロードされます)。CVE-2026-43284 の盲点をカバーします。2つのバリアントを連鎖させることで、互いの盲点をカバーし、主要なディストリビューションすべてで信頼性の高い root 権限を獲得できます。
レースコンディションなし。再試行不要。クラッシュのリスクなし。テストしたすべてのディストリビューションで決定論的。
重要: 公知の Copy Fail 緩和策(algif_aead ブラックリスト)が適用されているシステムでも、Dirty Frag は CVE-2026-43284 を介して悪用可能です。
algif_aead ブラックリスト(Copy Fail 回避策)を完全にバイパスCVE-2026-43284 (xfrm/ESP): Linux kernel from commit cac2661c53f3 (2017-01-17) through f4c50a4034e6 (2026-05-05).
CVE-2026-43500 (RxRPC): Linux kernel from commit 2dc334f1a63a (2023-06-08) through aa54b1d27fe0 (2026-05-10).
脆弱性チェーンの実効寿命は約 9 年間です。
この範囲のカーネルを出荷するすべての主要ディストリビューションが影響を受けます:
gcc -O0 -Wall -o exp exp.c -lutil && ./exp
テストを許可されていないシステムでは使用しないでください。
⚠️ 重要: このエクスプロイトを実行すると、ページキャッシュが汚染されます。汚染されたページキャッシュをクリアしてシステムの安定性を確保するには、以下を実行してください:
echo 3 > /proc/sys/vm/drop_caches
またはシステムを再起動してください。
メインライン修正を含むカーネルに更新して再起動してください。
メインラインでの修正:
f4c50a4034e62ab75f1d5cdd191dd5f9c77fdff4aa54b1d27fe0c2b78e664a34fd0fdf7cd1960d71# Ubuntu / Debian
sudo apt update && sudo apt upgrade -y && sudo reboot
# RHEL / AlmaLinux / CentOS Stream
sudo dnf clean metadata && sudo dnf upgrade && sudo reboot
# SUSE / openSUSE
sudo zypper refresh && sudo zypper update kernel-default && sudo reboot
# Fedora
sudo dnf upgrade --refresh && sudo reboot
すぐにパッチを適用できない場合は、脆弱なモジュールを無効にしてページキャッシュをクリアしてください。
# 脆弱モジュールをブラックリスト化
sudo sh -c 'printf "install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n" > /etc/modprobe.d/dirtyfrag.conf'
# 即座にモジュールをアンロード
sudo rmmod esp4 esp6 rxrpc 2>/dev/null || true
# ページキャッシュを削除
echo 3 | sudo tee /proc/sys/vm/drop_caches >/dev/null
信頼できないワークロード(コンテナ、CIランナー、サンドボックス環境)については、パッチの状態に関係なく、seccomp または AppArmor ポリシーを介して AF_ALG ソケット作成と splice() を制限してください。これにより、脆弱なカーネルでも攻撃対象領域を限定できますが、完全な修正ではありません。
脆弱なモジュールが現在ロードされているか使用中かを確認します:
# モジュールがロードされているか確認
lsmod | grep -E 'esp4|esp6|rxrpc'
# AF_ALG ソケットを開いているプロセスを確認
lsof | grep AF_ALG
ss -xa | grep alg
# 再起動後に回避策が有効かを確認
cat /etc/modprobe.d/dirtyfrag.conf
なぜ2つの脆弱性を連鎖させるのか?
xfrm-ESP Page-Cache Write は強力な任意の4バイト STORE プリミティブを提供し、ほとんどのディストリビューションに存在しますが、名前空間作成権限が必要です — Ubuntu は AppArmor を介してこれをブロックすることがあります。RxRPC Page-Cache Write は名前空間権限を必要としませんが、rxrpc.ko はほとんどのディストリビューションに含まれていません — ただし Ubuntu ではデフォルトでロードされます。2つを連鎖させることで、互いの盲点をカバーし、主要なディストリビューションすべてで信頼性の高い root 権限を獲得できます。
Copy Fail (CVE-2026-31431) との関係は?
xfrm-ESP プリミティブは CVE-2026-31431 と同じページキャッシュ書き込みシンクを共有しますが、algif_aead とは独立して esp4/esp6 モジュールを介してトリガーされます。CVE-2026-31431 の緩和策(algif_aead のブラックリスト化)を適用しても、Dirty Frag に対する防御にはなりません。
「Dirty Frag」という名前の由来は?
この脆弱性は struct sk_buff の frag メンバーを汚染(dirty)し、Dirty Pipe と同じバグクラス(ページキャッシュへの非特権書き込みを可能にするロジック欠陥)に分類されます。
このリポジトリは教育および防御的なセキュリティ目的のみを意図しています。このリポジトリの情報やコードを、所有していないシステムやテストの明示的な書面による許可がないシステムで使用しないでください。
安全に。早期にパッチ。頻繁にパッチ。ハッピーハッキング 🛡️
| Dirty Cow (2016) | Dirty Pipe (2022) | Copy Fail (2026) | Dirty Frag (2026) |
|---|
| レースコンディション必要 | はい | 部分的 | いいえ | いいえ |
| バージョン依存 | はい | はい | いいえ | いいえ |
| 信頼性 | 不安定 | 中程度 | 決定論的 | 決定論的 |
| ディストリビューションカバレッジ | 限定的 | 限定的 | 2017年以降すべて | 2017年以降すべて |
| Copy Fail 緩和策の回避 | — | — | 該当なし | はい |
| ディストリビューション | テストバージョン | ステータス |
|---|
| Ubuntu 24.04.4 | 6.17.0-23-generic | 影響あり — パッチ展開中 |
| RHEL 10.1 | 6.12.0-124.49.1.el10_1.x86_64 | 影響あり — パッチ展開中 |
| AlmaLinux 10 | 6.12.0-124.52.3.el10_1.x86_64 | 影響あり — パッチ利用可能 |
| CentOS Stream 10 | 6.12.0-224.el10.x86_64 | 影響あり — パッチ展開中 |
| Fedora 44 | 6.19.14-300.fc44.x86_64 | 影響あり — パッチ利用可能 |
| openSUSE Tumbleweed | 7.0.2-1-default | 影響あり — 進行中 |
| Debian | — | 影響あり — 進行中 |
| コンポーネント | 影響 |
|---|
| SSH | ✅ 影響なし |
| dm-crypt / LUKS | ✅ 影響なし |
| kTLS / in-kernel TLS | ✅ 影響なし |
| OpenSSL / GnuTLS / NSS (デフォルトビルド) | ✅ 影響なし |
| IPsec / XFRM (ESP トンネル、VPN) | ⚠️ 破損 — esp4 および esp6 が利用できなくなります |
| AFS / OpenAFS クライアント (RxRPC 使用) | ⚠️ 破損 — rxrpc が利用できなくなります |
AF_ALG + AEAD を直接使用するアプリケーション | ⚠️ `lsof |
| リソース | リンク |
|---|
| CVE-2026-43284 メインライン修正 | f4c50a4034e6 |
| CVE-2026-43500 メインライン修正 | aa54b1d27fe0 |
| NVD — CVE-2026-43284 | https://nvd.nist.gov/vuln/detail/CVE-2026-43284 |
| NVD — CVE-2026-43500 | https://nvd.nist.gov/vuln/detail/CVE-2026-43500 |
| 日付 | イベント |
|---|
| 2017-01-17 | CVE-2026-43284 のリグレッションが導入された (cac2661c53f3) |
| 2023-06-08 | CVE-2026-43500 のリグレッションが導入された (2dc334f1a63a) |
| 2026-05-05 | CVE-2026-43284 がメインラインで修正された (f4c50a4034e6) |
| 2026-05-07 | 公開開示 |
| 2026-05-10 | CVE-2026-43500 がメインラインで修正された (aa54b1d27fe0) |
| 2026-05-10+ | ディストリビューションパッチの出荷開始 |