Linuxカーネルの脆弱性、ローカル攻撃者によるroot権限奪取を可能に

新たに公開されたLinuxカーネルの脆弱性CVE-2026-23111は、nftablesサブシステムのuse-after-freeの欠陥を悪用することで、ローカル攻撃者がroot権限への昇格を行えるものです。

2026年2月5日にアップストリームでパッチが適用されたこの脆弱性は、netfilterフレームワーク、特にnftablesに影響します。nftablesはパケットフィルタリング、NAT、ファイアウォールルール管理に幅広く活用されており、現代の多くのLinuxディストリビューションで採用されています。

Exodus Intelligenceの報告によれば、Debian Bookworm、Debian Trixie、Ubuntu 22.04 LTS、Ubuntu 24.04 LTSでの悪用が実証されており、企業・サーバー環境への広範な影響が明らかになっています。

Linuxカーネルの脆弱性詳細

この脆弱性の本質は、nftablesのverdictマップの処理にあります。特に、トランザクション形式のルール更新時における「catchall」要素とgeneration maskの利用に問題が潜んでいます。

Linuxカーネルはファイアウォールルールセットのアトミックな更新を保証するために世代管理機構を採用しており、「現在の世代」と「次の世代」にまたがってオブジェクトをアクティブまたは非アクティブとしてマークします。

しかし、nft_map_catchall_activate()関数にはロジックエラーが存在し、ロールバック(アボート)操作中に非アクティブな要素をスキップしてしまうため、一部のオブジェクトが不整合な状態に陥ります。

この欠陥は参照カウントの問題を引き起こします。チェーンを参照するcatch-all要素を含むverdictマップが削除されると、チェーンの参照カウンターがデクリメントされます。

同一トランザクションバッチ内でエラーが発生した場合、カーネルは削除を元に戻そうとしますが、このバグにより、catchall要素が適切に再アクティブ化されず、参照カウンターも復元されません。その結果、チェーンが他の場所で参照されているにもかかわらず、参照カウントが0となり、未使用として扱われてしまいます。

この状態を利用することで、攻撃者はチェーンを早期に削除し、解放されたメモリが依然として参照される典型的なuse-after-freeシナリオを作り出せます。複数のバッチにまたがるnftablesトランザクションを巧みに操作することで、攻撃者はこの状態を安定的に引き起こし、解放されたカーネルオブジェクトを制御できるようになります。

攻撃のプロセスは複数の段階で構成されます。まず、攻撃者は特定の条件下で非特権ユーザーが作成できるネットワーク名前空間内でnftables操作を細工することで、脆弱性をトリガーします。

次に、攻撃者はダングリングポインタを利用してカーネルのベースアドレスを含む機密カーネルメモリをリークし、カーネルアドレス空間配置のランダム化(KASLR)を事実上回避します。

さらに、解放されたメモリ領域を制御されたデータ構造で再確保することでヒープメモリのアドレスを特定します。これらのリークにより、カーネルヒープのレイアウトを精密に操作でき、信頼性の高い攻撃に不可欠な情報が得られます。

最終的に、攻撃者はカーネル構造体内の関数ポインタを上書きして制御フローを乗っ取り、Return-Oriented Programming(ROP)チェーンを実行可能にします。

例えば、再確保したメモリ内の関数ポインタを上書きしておくことで、カーネルがnftablesを通じてパケットを処理する際に、攻撃者が制御するコードパスが実行されます。

このエクスプロイトは最終的にcommit_creds()をinit_credとともに呼び出してroot権限を付与し、ユーザー制限を突破するとともに、場合によってはコンテナの隔離境界をも越えます。

特筆すべきは、研究者らがこのエクスプロイトの高い信頼性を報告している点です。アイドル状態のシステムでは99%以上、高負荷時でも約80%の成功率が確認されており、この安定性が実環境においても特に危険な脆弱性であることを示しています。

この問題は、nftablesのような複雑なカーネルサブシステムが持つリスクを浮き彫りにしています。条件チェックの誤配置など、わずかなロジックエラーが深刻なセキュリティ上の結果をもたらしかねません。今回のケースでは、条件文の否定演算子が1つ誤っていただけで、権限昇格の経路が生まれてしまいました。

Linuxユーザーおよび管理者は、CVE-2026-23111の修正を含むパッチ済みカーネルバージョンへの更新を強くお勧めします。非特権ユーザーの名前空間を許可するシステムや、nftables機能へのアクセスを提供するシステムは特にリスクが高く、優先的に対処する必要があります。

セキュリティチームは、疑わしいnftablesのアクティビティ、通常とは異なるnetlinkの通信、または不正な名前空間の作成についても監視が必要です。これらは、稼働中の環境でこの脆弱性を悪用しようとする試みを示している可能性があります。

翻訳元: https://gbhackers.com/linux-kernel-flaw-allows-local-attackers-to-gain-privileges/

ソース: gbhackers.com