Probllamaはリモートコード実行の脆弱性につけられた名称です。
どんなものなのでしょうか。
- Ollama
Ollamaというものがあります。
これはローカルLLMの実行ツールです。
MacやLinuxで動くオープンソースのAIツールで、Windows版もpreviewが公開されています。
このツールを使用すると、Llama 2等の大規模言語モデルを自分のパソコンで動かすことができるようになります。
つまり、インターネットに接続しなくても、高度なAIの機能を手元環境に構築できるのです。
Probllamaは、このOllamaの脆弱性です。 - CVE-2024-37032
これが、今回話題にしている脆弱性です。
Ollamaのバージョンが0.1.34未満のものに存在します。
入力検証が十分でないため、パストラバーサルを許してしまいます。
このパストラバーサルが成り立ってしまう機能部分がOllamaが外部からモデルを取り込む機能に存在するため、ツール設置者の意図しないPATHにファイルを書き込むことが可能になってしまいます。 - 攻撃の様子
意図しないPATHにファイルを書き込めることが、どんな問題になるのでしょう。
前述の脆弱性を使って攻撃者は「/etc/ld.so.preload」の内容を変更できます。
このファイルはプログラムが実行される際に、あらかじめ動的ライブラリを読み込むことに使用されます。
つまり、なんらかの正規のプログラムが動作を開始しようとした際に、毎回、攻撃者の指定したライブラリが自動的にロードされるようになってしまうということになります。
攻撃者は同じ脆弱性を使うことで、その追加で自動的に読み込ませるライブラリのファイルも配置することができますので、全体として攻撃が成り立つことになります。 - 脆弱性のある機能の開放範囲
この脆弱性はOllamaが外部からモデルを取り込む機能に存在するものです。
この機能はOllamaにおいて、APIサーバとして実装されています。
そして、Linux環境においてOllamaを標準的にインストールした場合、このAPIサーバはlocalhostに対してListenするように設置されます。
このため、この環境においては脆弱性はあるのですが、脆弱性が開始できるのはローカルに侵害された後のことになります。
しかし、安心できません。
Ollamaの公式のDockerイメージでは、このAPIサーバが0.0.0.0をListenするようになっています。
このため、この状態においてはこの脆弱性はリモートから悪用可能なものとなります。
そして、さらにこのコンテナはroot権限で動作します。
CVE-2024-37032の存在とは関係なく、この内容は心配があるものといえそうです。
この脆弱性を解消したバージョンはすでに公開されています。
しかし、未解消の古いバージョンがそのまま動作していると思われるサイトが多数あります。
パストラバーサルのできる脆弱性のある古いバージョンを、公式の設定が十分に安全になっていないコンテナで動作させている場合、その環境は攻撃対象となってしまいます。
ファイルを書き込めることの悲劇、というようなお話でした。
Probllama: Ollama Remote Code Execution Vulnerability (CVE-2024-37032) – Overview and Mitigations
https://www.wiz.io/blog/probllama-ollama-vulnerability-cve-2024-37032
この記事をシェア |
---|