Linux カーネルに新たな CIFSwitch 脆弱性 CVE-N/A:root アクセスの可能性と PoC の提供

New Linux CIFSwitch Kernel Vulnerability Allows Attackers to Gain Root Access

2026/05/28 CyberSecurityNews — 新たに公開された Linux のローカル権限昇格の脆弱性 CIFSwitch (CVE-N/A) により、Linux カーネルの CIFS クライアントとユーザー・スペースの cifs-utils パッケージ間のロジック不備を悪用することで、低権限ユーザーであっても root 権限を取得できることが判明した。この脆弱性は、セキュリティ研究者 Asim Manizada により発見されたものであり、防御側における影響範囲の評価とパッチ適用の検証を支援するための、詳細な技術解説と PoC が公開されている。

この問題は、cifs.spnego キータイプにおける記述子の検証不備に起因し、未特権ユーザーによる信頼されたカーネル・リクエストの偽装と、特権操作のトリガーを許すものである。

Linux CIFSwitch カーネル脆弱性

この脆弱性は、セキュリティ関連オブジェクトおよびフローのセマンティック・グラフを構築/探索する AI 支援マルチホップ推論手法により発見され、複数の微細なロジック不備を連鎖させることで、実用的なエクスプロイトへと昇華している。

このアドバイザリは、Linux ディストリビューションとの調整と交渉の後に公開され、すでに上流におけるカーネル・パッチが提供されている。

CIFS/SMB は Linux 上で広く使用される Windows 互換ネットワーク・ファイルシステム・プロトコルである。この構成では、カーネル CIFS クライアントがファイル・システム処理を担当する。その一方で、Kerberos/SPNEGO 認証は、root 権限で動作するユーザースペース・ヘルパー cifs-upcall (cifs-utils 提供) に委譲される。

この連携は、Linux keyring を使用して実現される。カーネルは request_key() を呼び出し cifs.spnego キーを要求し、サーバ/UID/認証 UID/PID/namespace ターゲットなどの信頼済み記述文字列を受け渡す。その後に、”/sbin/request-key” ポリシーにより、cifs-upcall が root 権限で起動され、処理を実行する。

Manizada の研究により判明したのは、カーネルが cifs.spnego キー記述子の生成元を検証していないことである。この欠陥により、未特権プロセスによる request_key(“cifs.spnego”, <crafted_description>, …) の呼び出しが可能になる。

このキーが cifs.spnego であるため、デフォルトの request-key ルールにより、攻撃者が完全に制御する記述子であっても cifs-upcall が root 権限で起動される。

このエクスプロイトは、偽装記述内の pid および upcall_target に依存する。upcall_target=app を設定した悪意の pid を指定することで、cifs-upcall は権限降格前に攻撃者制御プロセスの namespace に切り替える。

攻撃者が制御する mount namespace 内には、悪意の nsswitch.conf および libnss_*.so.2 の配置が可能であり、root 権限の NSS 参照処理により任意コードが実行される。

Asim Manizada が提供する PoC では、悪意の NSS モジュールが “/etc/sudoers.d” にエントリーを書き込み、攻撃者に実質的な root 権限を付与する。

このカーネルの不具合は 2007 年に遡るものであるが、悪用の前提として以下が必要である。

  • 未特権 user namespace の有効化。
  • SELinux や AppArmor などの LSM ポリシーにより攻撃経路が遮断されないこと。
  • 脆弱な kernel と互換性のある cifs-utils バージョン (特に 6.14 以降またはバックポート版)。

テストにおいて確認されたのは、多くの主要ディストリビューションに cifs-utils が存在するだけで、そのままでの悪用が可能であることだった。一部は、cifs-utils のインストールや LSM 制約の緩和後に悪用可能となる。

上流でのカーネル修正では、cifs.spnego キータイプに vet_description フックが追加され、CIFS クライアント内部の spnego_cred によるリクエストのみが受け付けられることで、未特権ユーザーによる偽装を防止するようになった。

さらに cifs-utils 側でも、cifs-upcall がキー記述子を無条件にカーネル由来として信頼されないための強化が推奨される。

Asim Manizada は、GitHub 上で技術詳細 “CIFSwitch” および PoC エクスプロイトを公開しており、防御側および運用者が対策を検証できるよう支援している。

管理者は、バックポートされたカーネル・パッチを速やかに適用すべきである。さらに防御層の強化策として以下を検討する必要がある。

  • 未使用環境での CIFS 無効化。
  • cifs-utils の削除。
  • cifs.spnego 向け request-key ルールの厳格化。
  • 未特権ユーザーネームスペースの制限。

この脆弱性が示すのは、カーネルとユーザースペース間の信頼境界における設計不備が、長期間にわたって見過ごされてきた現実である。ロジックレベルにおける検証の重要性が強調される。