何が起きたか
obsidian-tc では、ツールディスパッチが呼び出し元の input.vault が呼び出し元にバインドされたボールトと一致するかを検証せず、JWT にはボールトクレームがなく、フォルダアクセス制御リストはグローバルに共有されています。したがって、任意の有効なトークンが別の構成済みボールトを選択し、影響を受けるツールを通じてその内容を読み取り、書き込み、または削除できます。文書化されたループバック/認証なしモードの兄弟である DNS リバインディングの欠陥と組み合わせると、接続されたAIエージェントが到達できるボールトデータは呼び出し元ごとに制限されません。
なぜ重要か
MCP サーバーは AI エージェントのファイルシステム/手です。ここでのマルチテナント IDOR は、任意のトークンを保持するエージェント — または推奨される認証なしループバック構成では、DNS リバインディングを介した任意のローカルウェブページ — が、別の Obsidian ボールトのノート、埋め込み、プラグイン構成を静かに読み取り、破壊できることを意味します(同じ製品の CVE-2026-77363/77364 も参照)。
攻撃経路
MCP ツールディスパッチは、呼び出し元制御の input.vault 値を呼び出し元にバインドされたボールトと比較することはありません。JWT にはボールトクレームがなく、フォルダ ACL はグローバルです。あるボールトの有効なトークンが別のボールトを指定するリクエストを送信し、影響を受ける読み取り/書き込み/削除がターゲットボールトのファイルに対して操作されます。
影響を受けるシステム
obsidian-tc (The-40-Thieves) < 1.3.1
緩和策
obsidian-tc 1.3.1 にアップグレードしてください(コミット 38b4992e87dc...、PR #72)。この修正により、トークンとリクエストコンテキストがボールトにバインドされ、スコープチェックの前に不一致の input.vault が拒否されます。