
CVE-2026-43284 + CVE-2026-43500「Dirty Frag」の監査スクリプト
CVE-2026-43284 + CVE-2026-43500「Dirty Frag」 の監査スクリプト — 2026-05-07 に公開された Linux カーネルのローカル権限昇格脆弱性の連鎖であり、ディストリビューションのパッチが提供される前に動作する公開エクスプロイトが存在していた。
「Copy Fail 2: Electric Boogaloo」 とも呼ばれる — 同じコードパスを使用しているが、エクスプロイトの作者は異なる。
Dirty Frag は、Hyunwoo Kim (@v4bel) によって発見された 2 つの異なるカーネルバグを連鎖させるもので、いずれも同じ脆弱性クラス — カーネルが排他的に所有していないページバッファ上でのインプレース復号 — を標的としている。
AF_INET / AF_INET6 socket (IPsec ESP)
└── In-place decryption path (commit cac2661c53f3, Jan 2017)
└── splice() feeds page cache pages as destination buffers
└── Plaintext write at attacker-controlled offset in page cache
└── Target SUID binary in memory → root
esp4、esp6f4c50a4034e6AF_RXRPC socket (Andrew File System / RxRPC protocol)
└── Same in-place pattern added to rxrpc (June 2023)
└── Same page-cache write primitive
└── root
rxrpcaa54b1d27fe0| 特性 | Dirty Cow (2016) | Dirty Pipe (2022) | Copy Fail (2026) | Dirty Frag (2026) |
|---|---|---|---|---|
| 競合状態 | ✅ 必要 | ❌ 不要 | ❌ 不要 | ❌ 不要 |
| 書き込み粒度 | 任意 | 1バイト単位でアラインメント | 4バイト固定 | 平文全体、任意のオフセット |
| ディスク変更 | ✅ | ❌ | ❌ | ❌ |
| フォレンジック痕跡 | ✅ | ❌ | ❌ | ❌ |
| コンテナエスケープ | 限定的 | 限定的 | 可能 | 可能(共有ページキャッシュ) |
| 公開エクスプロイト | ✅ | ✅ | ✅ | ✅ パッチ適用前 |
| 攻撃ベクター | 1 | 1 | 1 | 2(esp + rxrpc) |
| カーネル範囲 | ステータス |
|---|---|
| < 4.14 | ✅ 影響なし |
| 4.14 – 最新の未パッチ版 | ❌ 脆弱 |
f4c50a4034e6 を含むメインライン | ✅ パッチ適用済み |
| カーネル範囲 | ステータス |
|---|---|
| < 6.4 | ✅ 影響なし(パターンがまだ導入されていない) |
| 6.4 – 最新の未パッチ版 | ❌ 脆弱 |
aa54b1d27fe0 を含むメインライン | ✅ パッチ適用済み |
| ディストリビューション | CVE-2026-43284 | CVE-2026-43500 | パッチ適用バージョン |
|---|---|---|---|
| AlmaLinux / RHEL 8 | ❌ 影響あり | ✅ 未提供 | kernel-4.18.0-553.123.2.el8_10 |
| AlmaLinux / RHEL 9 | ❌ 影響あり | ⚠ kernel-modules-partner(Devel リポジトリ)がインストールされている場合のみ | dnf upgrade 経由 |
| AlmaLinux / RHEL 10 | ❌ 影響あり | ❌ 影響あり | dnf upgrade 経由 |
| Ubuntu 20.04–24.04 | ❌ 影響あり | ⚠ カーネル依存 | apt dist-upgrade 経由 |
| Debian stable | ❌ 影響あり | ⚠ カーネル依存 | sid のみで修正(linux ≥ 7.0.4-1) |
| SUSE / openSUSE | ❌ 影響あり | ❌ 影響あり | zypper update kernel-default 経由 |
| Arch Linux | ❌ 影響あり | ❌ 影響あり | pacman -Syu linux 経由 |
git clone https://github.com/Quaerendir/dirtyfrag-audit
cd dirtyfrag-audit
chmod +x audit_dirtyfrag.sh
./audit_dirtyfrag.sh
リモートワンライナー(本番環境で実行する前に検証してください):
curl -fsSL https://raw.githubusercontent.com/Quaerendir/dirtyfrag-audit/main/audit_dirtyfrag.sh | bash
| コード | 意味 |
|---|---|
0 | 安全 — どちらの CVE も該当しない |
1 | 脆弱 — 少なくとも 1 つの CVE が有効で、緩和策なし |
2 | 緩和済み — 回避策が有効だが、パッチは依然必要 |
| チェック | CVE |
|---|---|
| カーネルバージョンの範囲(ESP は 4.14 以上、rxrpc は 6.4 以上) | 両方 |
| ディストリビューション固有のパッチ適用済みカーネルバージョン | 両方 |
esp4 / esp6 モジュールのロード状態(lsmod) | CVE-2026-43284 |
rxrpc モジュールのロード状態(lsmod) | CVE-2026-43500 |
| 組み込みモジュールかロード可能モジュールかの検出 | 両方 |
modprobe.d のブラックリストルール(モジュールごと) | 両方 |
| IPsec XFRM の state/policy — 切断される可能性のあるアクティブセッション | CVE-2026-43284 |
| kAFS / AFS モジュールの使用状況 — アクティブな rxrpc コンシューマー | CVE-2026-43500 |
| KernelCare ライブパッチのステータス | 両方 |
/proc/sys/vm/drop_caches へのアクセス可否 | 両方 |
| コンテナ / Docker / Kubernetes のコンテキスト | 両方 |
| アクティブなログインユーザー(マルチテナントのリスク) | 両方 |
| SELinux / AppArmor のステータス | 両方 |
| IPsec/VTI/XFRM インターフェースの検出 | CVE-2026-43284 |
# RHEL / AlmaLinux
dnf clean metadata && dnf upgrade && reboot
# Ubuntu / Debian
apt-get update && apt-get dist-upgrade && reboot
# SUSE
zypper update kernel-default && reboot
# Arch
pacman -Syu linux && reboot
まず、アクティブな使用状況を確認します:
ip xfrm state # IPsec — if output non-empty, blacklisting breaks IPsec
lsmod | grep kafs # AFS — if loaded, rxrpc is in use
回避策を適用:
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 || true
# IMPORTANT: flush page cache to evict any poisoned pages
echo 3 > /proc/sys/vm/drop_caches
kcarectl --update
kcarectl --patch-info | grep -iE 'CVE-2026-43284|CVE-2026-43500|dirtyfrag'
dm-crypt / LUKS · WireGuard · OpenVPN · SSH · TLS/kTLS · OpenSSL · GnuTLS
IKE デーモン(strongSwan、libreswan)は引き続き機能します — 無効化されるのはカーネル内の ESP パケット処理のみです。
MIT — LICENSE を参照
Quaerendir / Kostur IT SERVICES