Linux カーネルの新たな脆弱性 CVE-2026-23111 が FIX:root 権限昇格エクスプロイトが公開

New Linux Kernel Vulnerability Lets Attackers Escalate Privileges to Root

2026/06/08 CyberSecurityNews — Linux Kernel の nftables サブシステムにおける、解放後メモリ使用 (use-after-free) 脆弱性 CVE-2026-23111 に対するエクスプロイトが公表された。それにより、この脆弱性を悪用する権限を持たないローカル攻撃者は、root 権限への昇格が容易になる。影響を受けるディストリビューションとしては、Debian Bookworm/Debian Trixie/Ubuntu 22.04 LTS/Ubuntu 24.04 LTS などが挙げられる。脆弱性 CVE-2026-23111 は 2025 年初頭に発見され、2026年2月5日に Kernel コミットを通じてアップストリーム修正された。

Exodus Intelligence のセキュリティ研究者 Oliver Sieber が、アイドル状態のシステムで 99% 以上の成功率を示す、実用的なエクスプロイトと詳細な技術レポートを公開した。

このバグは、nftables サブシステム (Linux の Netfilter フック上に構築されたパケット・フィルタリング・フレームワーク) 内の nft_map_catchall_activate() 関数に起因する。

具体的に言うと、単一の逆条件チェック (論理否定演算子 “!“ の配置ミス) により、非アクティブな catchall 要素の再アクティブ化を、アボート処理中に誤ってスキップしてしまう欠陥が生じている。

これにより、pipapo ベースのバーディクト・マップが削除されるが、その中にはチェーン参照を持つ catchall 要素が含まれている。その後に、同一バッチ内のトランザクションが失敗してアボートがトリガーされる際に、その catchall 要素が誤って非アクティブの状態で残存してしまう。

この結果により、チェーンへの有効な参照が依然として存在しているにもかかわらず、チェーンの参照カウンタは “0” となる。この状態でチェーンを削除する攻撃者は、ベースチェーン・ルール内のダングリング・ポインタを介して、解放後メモリ使用を引き起こせる。

Linux Kernel 解放後メモリ使用の脆弱性

このエクスプロイトは、nftables の世代カーソル・メカニズムを操作するために、4 つのトランザクション・バッチを連鎖させる。

  • Batch 1: pipapo セットを削除した後に、エラーを強制発生させてアボートをトリガーし、チェーン参照カウンタを不正にデクリメントする。
  • Batch 2: 無害なトランザクションを送信して、世代カーソルを切り替える。 
  • Batch 3: pipapo セットを正常に削除し、チェーン参照カウンタを “0” にする。 
  • Batch 4: ベースチェーンが参照ルールを保持した状態で、チェーンを削除する。

その後、このエクスプロイトは KASLR 回避を実行するために、解放済みの kmalloc-cg-32 スラブを seq_operations 構造体 (open(“/proc/self/stat”) により初期化) で再利用し、NFT_MSG_GETRULE リクエストを通じて Kernel 関数ポインタをリークする。

続いて、細工された nft_rule 構造体で、解放済みの kmalloc-cg-192 オブジェクトを再確保し、同様の手法でリンクリスト・ポインタをリークすることでヒープアドレスを取得する。

制御フローのハイジャックは、ROP ガジェット (push rbx; pop rsp) を指す偽の nft_expr_ops 構造体で、削除されたチェーンの blob_gen_0 ポインタを上書きすることで実現される。最終的に ROP チェーンは、commit_creds(&init_cred) を呼び出して root 権限を取得する。

その後に、switch_task_namespaces() を実行して namespace 分離を突破することで、コンテナおよび namespace からの完全な脱出を達成する。

DistributionStatus
Debian BookwormVulnerable
Debian TrixieVulnerable
Ubuntu 22.04 LTSVulnerable
Ubuntu 24.04 LTSVulnerable

Ubuntu 24.04 においてAppArmor により適用される namespace 作成制限は、悪用前に aa-exec -p trinity — unshare -Urmin /bin/sh を使用することで回避できる。

なお、Oliver Sieber によると、このエクスプロイトはアイドル状態のシステムでは 99% 以上の安定性を示し、重いヒープ負荷下 (Phoronix Test Suite による Apache ベンチマーク) でも約 80% の安定性を達成しており、実環境でも高い信頼性を持つ。また、この欠陥の原因となったコード内の break 文は、関連する別の脆弱性である CVE-2026-23278 も引き起こしているが、別の Kernel コミットにより修正されている。

管理者に対して強く推奨されるのは、この脆弱性に対処するためにアップストリーム Kernel パッチ (commit f41c5d1) を直ちに適用するか、ディストリビューションが提供する修正済み Kernel へと更新することである。

また、Ubuntu 環境では、ポリシー上で許容されている場合に限り、kernel.unprivileged_userns_clone=0 を設定して非特権ユーザーによる namespace 作成を制限することで、部分的な緩和策となる。