Linux カーネル Red スケジューラの 0-day、物理メモリ R/W へ
Red Hat 系ネットワークスケジューラに潜伏した Linux カーネルゼロデイ脆弱性の詳細が公開された。限定的な Use-After-Free から物理メモリ読み書き、並びに権限昇格に至る洗練されたエクスプロイトチェーンを解説する。
2026年7月20日、1day.dev の研究者が Red Hat のネットワークスケジューラに存在した Linux カーネルゼロデイ脆弱性の全容を公開した。この脆弱性は、もともと Pwn2Own 2026(Red Hat カテゴリ)への提出を目的に発見・エクスプロイトされたものの、登録の遅れによりコンテストには参加できなかったという経緯を持つ。
脆弱性自体は別の研究者によって報告され、CVE は発行されていない。しかし、修正は 2026年6月に完了しており、公開された分析記事では単なるバグの詳細に留まらず、限定的なスラブ Use-After-Free(UAF)を物理メモリ全体の読み書きに昇華させるエクスプロイト戦略が詳細に解説されている。
脆弱性の原因
本脆弱性は、Linux カーネルのネットワークスケジューラサブシステム、特に red スケジューラに存在する。同サブシステムは複雑性が高く、複数のネットワークコンポーネントと相互作用するため、歴史的に攻撃対象となりやすい領域だ。
発見者は Red Hat を標的とした理由として、デフォルトで非特権ユーザー名前空間が有効になっている点を挙げている。この設定が攻撃者に unprivileged な攻撃経路を提供する。
問題の根本は、**コミット 3f14b37(2024年1月)**で混入し、**コミット a8a0289(2026年6月)**で修正された。脆弱性がカーネルに潜伏していた期間は約2.5年に及ぶ。
1day.dev の記事によると、バグは tcf_qevent_handle() 関数が tcf_classify() の戻り値 TC_ACT_CONSUMED を適切に処理していなかったことに起因する。TC_ACT_CONSUMED はフラグメンテーションデフラグエンジン(例: act_ct による out-of-order フラグメント処理)が skb(ソケットバッファ)を保持している場合に返される。この状態では skb の所有権は呼び出し元にないため、二重にアクセスしてはならない。
修正は極めてシンプルで、switch 文に case TC_ACT_CONSUMED を追加し、__NET_XMIT_STOLEN を返すようにするものだ。
case TC_ACT_CONSUMED:
*ret = __NET_XMIT_STOLEN;
return NULL;
エクスプロイト戦略
同記事の最も価値ある部分は、単純な修正とは裏腹に、高度に構築されたエクスプロイトチェーンにある。発見者は4つのステージで攻撃を実現している。
第1ステージ: スラブ UAF からページ UAF へ 初期的に取得できるのは、スラブアロケータ上の限定的な UAF プリミティブである。この限定されたプリミティブを拡張し、より自由度の高いページレベルの UAF へと昇華させる手法が採用された。
第2ステージ: ページ UAF から物理メモリ R/W へ ページレベルの UAF を利用して物理メモリ領域(physmap)の任意読み書きを確立する。これにより、カーネル空間の論理アドレスを経由せず、物理アドレス空間に直接アクセスする強力なプリミティブを獲得する。
第3ステージ: 任意物理メモリ読み書き 確立されたプリミティブを用いて、カーネル構造体の操作やページテーブルの改ざんを行い、物理メモリ上の任意の場所を読み書きできる状態を作り出す。
第4ステージ: 権限昇格(uid=0) 最終的にプロセスの権限情報を書き換え、root(uid=0)を獲得する。
影響と評価
今回公開された詳細なエクスプロイト戦略は、ネットワークスケジューラという複雑なサブシステムが依然として強力な攻撃対象であることを示した。特に、スラブレベルの限定的なバグを物理メモリ操作へと拡張する思考プロセスは、カーネル防御機構(KASLR や CFI など)の盲点を突く手法として、セキュリティ研究者にとって貴重な参考事例となる。
1day.dev の研究者は Pwn2Own への登録手続きの遅れにより、この研究がコンテストで評価される機会を逃した。しかしながら、約2.5年間にわたって修正されなかったバグが、著名な脆弱性発掘イベントの直前に別の研究者によって報告されていた事実は、脆弱性開示のタイミングと情報共有の課題を浮き彫りにする。
編集部の見解
本件は Red Hat 系環境を運用する企業に即座のパッチ適用を促す。特にデフォルトで非特権ユーザー名前空間を有効にするセキュリティポリシーは、このようなカーネルサブシステムの複雑性と組み合わさることで、深刻な攻撃経路を生むことを再認識させる。発見者が詳細なエクスプロイトチェーンを公開したことで、同様の手法を模倣した二次攻撃が発生するリスクがあり、防御側はネットワーク関連のカーネルコンポーネントに対する監視を強化すべきだ。 中長期的には、この事例は Linux ディストリビューターに対して非特権ユーザー名前空間のデフォルト設定を見直す圧力を強める可能性がある。現代のカーネルバグは単独の脆弱性よりも、エクスプロイトプリミティブを連鎖させる技術が高度化しており、今回のような「限定的な UAF から完全な制御へ」というパターンが標準となりつつある。防御機構の進化だけでは限界があり、攻撃面の縮小(Attack Surface Reduction)がより重要な戦略となる。 編集部として注目するのは、Pwn2Own のような競争的イベントが結果的に脆弱性の開示を遅延させる側面である。
参考
- 「A Linux Kernel 0-day Journey - From a limited UAF to Physical Memory R/W」, by 1day.dev via fro — Lobsters, 2026-07-20T20:15:57.000Z (ARR)
- 元記事URL: https://1day.dev/posts/linux-kernel-0day.html
よくある質問
- この脆弱性の影響を受ける主なシステムは何か。
- Red Hat 系の Linux ディストリビューションで、デフォルトで非特権ユーザー名前空間(unprivileged user namespaces)が有効になっている環境が主な標的となる。脆弱性はネットワークスケジューラサブシステムに存在するため、当該カーネルモジュールがロードされているすべてのシステムが潜在的な影響を受ける。
- 攻撃者はこの脆弱性を悪用して何ができるのか。
- 限定的な Use-After-Free 状態から出発し、物理メモリの任意読み書きを達成した後、プロセスの権限を root(uid=0)に昇格させる。これにより、攻撃者はシステム上で完全な制御を獲得する。
- なぜこのエクスプロイト技術が注目されるのか。
- スラブアロケータ上の限定的なプリミティブをページレベルの UAF に拡張し、最終的に物理メモリ全体の読み書きを実現するエクスプロイトチェーンが詳細に公開されたためだ。カーネルの防御機構をバイパスする高度な技術が含まれており、セキュリティ研究者にとって実践的な教材となる。
コメント