
CIFSwitchは、LinuxカーネルのCIFS/SMB(Windowsファイル共有プロトコル)クライアントと、ユーザー空間の認証補助ツール「cifs-utils」の連携処理に存在する、ローカル特権昇格(LPE)脆弱性の通称です。
cifs-utilsは、名前の一部にcifsを含むため、古い暗号化の弱い「CIFS (SMB 1.0)」だけが対象なのかとイメージしてしまうかもしれませんが、現在主流のセキュアな「SMB 2.0 / 3.0」以降の通信にもこのツールがそのまま使われています。そのため、「古いプロトコルだからもう誰も使っていない」ということはなく、最新のシステムでも日常的に稼働しています。
このこともあり、この脆弱性の対象となる利用者・システムは、少なくありません。
内容を見てみましょう。
- 種別:特権昇格
種別としては、ローカルでの特権昇格となる脆弱性です。 - 仕組み
CIFSマウントにおいてKerberos認証などを使用する際、Linuxカーネルはユーザー空間のcifs.upcall(cifs-utilsに含まれる)を呼び出します。
CIFSwitchは、この連携処理において入力値の検証が欠落している点を突くもので、権限のないユーザーがシステム権限を乗っ取ることを可能にします。 - 影響する条件
cifs-utilsがインストールされており、CIFSカーネルモジュールが有効で、かつ「無特権ユーザー名前空間」が許可されている環境で発生します。
特定のディストリビューションだけの問題ではありません。 - 対象になっている可能性のあるシステムの種類
次のような利用状況のシステムでは状況を確認するほうがよさそうです。- 企業のファイルサーバー連携
社内のWindowsファイルサーバーやActive Directory環境にある共有フォルダに、Linuxサーバーからデータをバックアップ・同期する。 - オンプレミス・家庭内NASの利用
QNAPやSynologyといった市販のNAS、あるいは自作のSambaサーバーをLinuxデスクトップ・サーバーに常時マウントして利用する。 - クラウドストレージのマウント
Microsoft Azure Files などのクラウド上のSMBストレージをLinuxに直接マウントして利用する。
- 企業のファイルサーバー連携
対策と対応としては、次の内容の実施が有効です。
- カーネルの更新
最新版のパッチ適用済みカーネルへのアップデート - 不要なパッケージの削除
ファイル共有機能(CIFS)を使用していない場合は関連モジュールの無効化
パッチの適用を定常運用するだけでなく、インストールされているパッケージの利用状況を管理し、すでに不要となったパッケージについてはアンインストールするということも危険性を下げるためには重要な取り組みです。
継続は簡単ではありませんが、常にこの意識は持っておきたいものです。
CIFSwitch: a non-universal Linux local root vulnerability
https://heyitsas.im/posts/cifswitch/
| この記事をシェア |
|---|