Ubuntu’s Kernel Vulnerability Let Attackers Escalate Privileges and Gain Root Access
2025/10/28 CyberSecurityNews — Ubuntu の Linux カーネルに深刻な脆弱性が発見された。この脆弱性を悪用するローカル攻撃者は、影響を受けるシステム上で権限を昇格させ、root アクセスを取得する可能性がある。TyphoonPWN 2025 で公開された、この脆弱性 (CVE-N/A) は af_unix サブシステムにおける参照カウントの不均衡に起因し、解放済みメモリ使用 (UAF) 状態を引き起こす可能性がある。研究者らは、完全な PoC エクスプロイトを開発し、この問題を実証している。

この脆弱性が影響を及ぼす範囲は、カーネル・バージョン 6.8.0-60-generic を実行している Ubuntu 24.04.2 であり、主要ディストリビューションにおけるカーネル・パッチ管理の課題を浮き彫りにしている。
根本的な原因は、af_unix ドメインソケットの参照カウント・バグ修正を目的とした、アップストリーム Linux カーネル・パッチを、Ubuntu が部分実装した点にある。af_unix ドメイン・ソケットは、プロセス間のファイル・ディスクリプタ送信を可能にし、プロセス間通信を容易にするものである。
従来から、このサブシステムは循環参照を処理するため、ガベージ・コレクション機構を採用していた。しかし最近のアップストリーム変更により、帯域外 (OOB) ソケット・バッファ (skb) 参照の管理方法を調整しながら、新しいアルゴリズムに置き換えられていた。
具体的には、パッチにより “af_unix.c” 内の queue_oob 関数の skb_get() 呼び出しが削除され、さらに、MSG_OOB フラグ経由で送信される OOB データへのポインタである u->oob_skb への不要な参照カウントを防止され、ガベージ・コレクションでのデクリメントも回避されるようになった。
Ubuntu のカーネル権限昇格
その一方で Ubuntu のカーネルは、以前の 6.8.12 ベースで従来のガベージ・コレクション機能を維持していたが、誤って af_unix.c の変更だけを適用し、”garbage.c” の更新を省略していた。
この不一致により、u->oob_skb は割り当て時に、参照を1つ失う一方で2回のデクリメントが発生する。1つは unix_gc の kfree_skb、もう1つはソケット・クローズ中の unix_release_sock によるデクリメントである。結果として、 skbuff_head_cache スラブの 256 バイト struct sk_buff オブジェクトで、UAF がトリガーされてしまう。
SSD Disclosure によると、どちらの関数もオブジェクトを解放し得るが、実エクスプロイトでは unix_gc で解放された後に、unix_release_sock で使用されることが常に確認されている。
この不一致を悪用する攻撃者は、信頼性の高い UAF のための解放フェーズと使用フェーズを分離する必要がある。それは、ソケット・クローズ直後にガベージ・コレクションをトリガーすることで実現する。具体的には、後続の sendmsg 呼び出し中に unix_tot_inflight カウントを 16,000 超に引き上げ、wait_for_unix_gc を呼び出す。
さらに、システムコール後の TWA_RESUME 作業項目として、unix_release_sock が実行されるまでのタイミングギャップを埋める必要がある。このエクスプロイトは、skb_copy_datagram_from_iter 内の FUSE ファイル・システムの mmap バッファを用いて実行を停止し、カスタム FUSE_read ハンドラ経由でカーネル・スレッドを数秒間スリープさせる。
その後に、クロスキャッシュ攻撃により専用スラブを解放し、ループバック・インターフェイス上のパケットソケット経由でスプレーした、制御済み pg_vec 構造体でページを回収する。
解放済み skb を上書きすると、skb_release_head_state 内のデストラクタ呼び出しを制御できるようになり、RIP および RDI ハイジャックが可能になる。
KASLR バイパスは、Entrybleed のプリフェッチ・サイドチャネル・バリアントを採用し、KPTI なしのシステムであっても、統計的タイミング解析により 100% の成功率を実現する。
最後に、ROP チェーンが modprobe_path を “/tmp/x” に上書きする。それは、usermodehelper 呼び出しを介して root 権限を付与するシェル・スクリプトである。
この PoC は、提供ユーティリティと FUSE コンポーネントを用いる、C 言語で書かれた高度なエクスプロイトとして機能し、KASLR リーク/スプレー/ペイロード実行などにより完全な権限昇格を実証する。
TyphoonPWN 2025 において、この脆弱性の発見者による綿密なカーネル内部分析が評価され、Linux 部門で1位となった。
緩和策
すでに Canonical は、2025年9月18日の時点で更新カーネルをリリースしている。このカーネルには、変更された2つのファイル間で参照カウントをバランスさせる、すべてのアップストリーム修正が組み込まれている。
影響を受けるバージョンのユーザーにとって必要なことは、apt upgrade linux-generic を用いてカーネル 6.8.0-61 以降を検証し、直ちにアップデートすることである。
この件が明らかにするのは、ディストリビューション・カーネルにおける選択的バックポートのリスクである。管理者が実施すべきは、セキュリティ・アドバイザリの注意深い監視となる。
広範な悪用は報告されていないが、公開 PoC の存在により、企業環境でのパッチ適用の緊急性が高まっている。
この問題の原因は、ディストリビューション側でのパッチの不整合 (部分的なバックポート) にあります。具体的に言うと、af_unix の参照カウント修正が、一方のファイルだけに適用され、garbage.c 側とのバランスが崩れたことで、UAF が発生してしまいます。PoC による権限昇格の再現や、詳細なタイミング操作の説明もあるため、脆弱性の悪用が懸念されると、この記事は指摘しています。ご利用のチームは、ご注意ください。よろしければ、Ubuntu で検索を、ご参照ください。
You must be logged in to post a comment.