何が起きたか・対象
AnythingLLMの/api/setup-completeは初期設定の完了状態を返すAPIですが、認証トークンを含む内部設定から応答を作っていました。管理者が設定したOllamaLLMAuthTokenは、AnythingLLMがOllamaのAPIへ送る認証用トークンです。秘密項目を伏せる処理にこの項目が含まれず、JSONの平文で残りました。識別子はGHSL-2025-056です。
このAPIはログインなしで呼べるため、接続できる攻撃者がHTTPリクエストを送り、応答を読むだけで値を入手できました。Ollamaをトークン付きで使う構成が前提です。トークンを取得した事実と、さらにその値で接続先を操作できた事実は区別し、後者は接続経路やトークンの許可範囲によります。
報告・修正・公開の時系列
研究者は1.7.8で検証し、2025-05-07に非公開の脆弱性報告を送りました。資料では同日に修正、05-15に研究公開と記録されています。修正日と、利用者へ配布された版の確認は区別します。
正常ならどう動くはずだったか
セットアップ状態の確認には、設定を完了したかなど公開してよい項目だけが必要です。管理者が保存したOllama接続用トークンは、AnythingLLMから接続先のAPIへ認証情報として渡すための秘密です。セットアップ確認APIのHTTPレスポンスを読む利用者へ、その値を渡す必要はありません。
技術的な原因
/api/setup-completeは、ログイン情報なしのHTTPリクエストを受け付け、保存済みのsystemSettingsから応答を作っていました。秘密として登録した項目をマスクする処理からOllamaLLMAuthTokenが漏れ、管理者が設定したトークンがJSONの平文の値として残りました。内部設定の項目が、そのまま公開APIの出力へ入る箇所が不備です。
攻撃が成立する条件と流れ
攻撃者は、到達可能な/api/setup-completeへログインせずHTTPリクエストを送り、返されたJSONからOllamaLLMAuthTokenの値を読み取ります。Ollamaを認証トークン付きで使う設定が条件です。取得した値をOllamaへの認証情報として送れる接続経路もあれば、そのトークンが許可するAPI操作へ進めるおそれがあります。
確認された事実と、想定される影響
研究で確認されている直接の結果は、Ollamaの接続用トークンが未認証のAPIレスポンスから取得できることです。攻撃者は自分の端末で応答を受け取るため、単にAnythingLLMの内部で秘密を読めるという話ではありません。
資料は、取得したトークンでOllamaのモデルテンプレートやシステムプロンプトを変える可能性を説明しています。これらはモデルへ渡す会話の形式や指示に使われるため、AnythingLLMが変更後のモデルを使うと、以後の応答が変わるおそれがあります。
ツールや文書への影響には、さらにAnythingLLM側の処理が必要です。説明用に、モデルの出力をツール呼び出しとして受理する構成なら、変更した指示によって呼び出すツールや引数が変わり、AnythingLLMに許可された範囲で処理されるおそれがあります。文書の取得には、対象文書を読むツールが有効で、その呼び出しが認可され、取得内容を外部へ返せる経路も必要です。資料が挙げるツール・MCPサーバー・文書への到達可能性を、全構成で実証された文書窃取とは扱いません。
実際の修正・対応方針
研究資料には2025-05-07に修正済みとあります。配布された版と変更差分はここでは直接確認していないため、具体的な修正コードは断定しません。
一般的な対策では、内部設定のオブジェクトをそのまま返さず、公開項目だけを入れた新しい応答を作ります。例えば、完了状態だけが必要なら、setupCompleteの値だけを新しいオブジェクトへコピーしてJSON化します。型注釈を付けるだけで、実際のオブジェクトから秘密が消えるわけではありません。内部へ新しいトークンを追加しても、その値を応答へコピーしなければ公開されません。
利用者・運用者が確認すること
開発元の案内で修正済みの版を確認して更新します。漏れた可能性のあるトークンは失効・再発行し、接続先の使用履歴も確認します。APIの応答を直すだけでは、すでに取得された秘密の再利用を止められません。
開発者への教訓(教材としての考察)
内部設定から既知の秘密だけを除く方式では、新しい秘密項目の追加時に除外漏れが生じます。公開してよい項目だけを選び、別の応答オブジェクトを作る方式にすると、内部へ追加されたトークンが自動でレスポンスへ入る経路を防げます。
出典・確認範囲
- [1] Ollama token leak in AnythingLLMGitHub Security Lab / 確認日 2026-10-29
参照資料では実悪用や実際の被害件数を確認できません。未記載の実装差分は推測していません。