
このリポジトリは、Dirty Frag として広く知られ、xfrm-ESP パスでは CVE-2026-43284 として追跡されている Linux カーネルの脆弱性に関する、整理された技術図と補足ノートを含んでいます。
この問題は、Hyunwoo Kim (@v4bel) によって発見された、より広範な Dirty Frag クラスに属します。関連する RxRPC の亜種は CVE-2026-43500 として別途追跡されています。
この資料の目的は次のとおりです。
splice()、skb フラグメント、ファイルバックドページ、ページキャッシュ破損の関係を文書化すること;このリポジトリは 攻撃の手引きではありません。
実際的には、このリポジトリは元の公開された Dirty Frag ESP の概念実証を、より検査しやすい形式に拡張し文書化しています。含まれる資料は 64 ビット Linux システム専用 です。
高レベルでは、この問題は xfrm ESP 受信パスにおける 誤ったインプレース処理 に起因します。
その連鎖は次のようになります。
unshare(CLONE_NEWUSER | CLONE_NEWNET) を使用して新しいユーザ名前空間とネットワーク名前空間に入る;/usr/bin/su からの読み取り専用ページが と を通じて UDP パケットパスに移動される;splice()SPLICE_F_MOVEskb フラグメントとして運ぶ;
poc/dirtyfrag_sim.cpp — 整理された C++ 研究ソースアーティファクトpoc/dirtyfrag — コンパイルされた 64 ビットバイナリアーティファクトdocs/dirtyfrag-flow.png — 生成された公開用図リポジトリには、C++ ソースファイルからビルドされたコンパイル済み C++ バイナリアーティファクトも含まれています。ビルドコマンドの例:
g++ -std=c++17 -o poc/dirtyfrag poc/dirtyfrag.cpp
カーネル cac2661c53f3 (2017-01-17) から f4c50a4034e6 (2026-05-05, 修正公開) まで。
実質的な暴露期間は約 9 年間です。
このリポジトリは、防御的研究、文書化、および教育分析のみを目的として提供されています。
実際のシステムを標的にしたり、特権実行可能ファイルを変更したり、不正アクセスを取得したりするために使用しないでください。
この脆弱性クラスは Hyunwoo Kim (@v4bel) によって発見されました。このリポジトリは、より迅速な分析を目的とした独立した整理済み研究アーティファクトです。
f4c50a4034e6