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 ルールの厳格化。
- 未特権ユーザーネームスペースの制限。
この脆弱性が示すのは、カーネルとユーザースペース間の信頼境界における設計不備が、長期間にわたって見過ごされてきた現実である。ロジックレベルにおける検証の重要性が強調される。
訳者後書:今回の Linux カーネルに関する問題は、カーネルとユーザー・スペース・プログラムが連携する際の、キー記述子の検証不備に起因するものです。現時点では CVE が割り当てられていませんが、CIFSwitch という名称が付けられています。この脆弱性の悪用により、認証処理を root 権限の外部ヘルパーに委譲する際の弱点が突かれてしまいます。本来は、信頼されたカーネル側からしか作成できないはずの記述文字列を、権限のない一般ユーザーが偽装して作成できてしまう設計上の弱点が露呈しています。これにより、特権を持つヘルパー・プロセスを意図的に起動させ、攻撃者が用意する不正なプログラムが実行されるという状況が生じます。上流で公開されたカーネルパッチの即時適用や、緩和策の実施が求められます。
You must be logged in to post a comment.