MCP 與應用安全
SiYuanのMCPエンドポイントにロールチェックの不備、3.7.2で低権限ユーザーがコアツールを呼び出せる脆弱性を修正
新たに公開されたCVE-2026-66012により、SiYuan 3.7.2より前の`POST /mcp`エンドポイントは通常のログイン状態しか確認せず、管理者ロールや読み取り専用制限を強制していなかったことが判明した。MCPはノート機能の中核をAIクライアントに公開できるため、本来はコンテンツの読み取りのみを許可されたアカウントが、状態を変更する操作を実行できる可能性があった。

オープンソースのナレッジ管理ツールSiYuanは、バージョン3.7.2でMCPエンドポイントの認可不備を修正した。CVE-2026-66012の公開情報によると、旧バージョンのコアサービスは`POST /mcp`リクエストを受信した際、汎用の`model.CheckAuth`認証のみを実行し、呼び出し元が管理者であるかを追加確認せず、読み取り専用モードも適用していなかった。その結果、通常の認証を通過できる低権限ユーザーが、本来のロール範囲を超えるMCPツール機能を利用できる可能性があった。
この問題の技術的影響は、従来型のREST API脆弱性にとどまらない。MCPクライアントは通常、最初にツールを列挙し、その後、自然言語の指示に基づいてモデルに呼び出すツールの選択や組み合わせを行わせる。サーバー側のロール判定がログイン層だけに集約されていると、エージェントが単一の権限逸脱機能を連鎖させ、複数ステップのデータ変更処理を実行する可能性がある。SiYuanを外部公開している場合、共有環境で運用している場合、またはアクセス資格情報をデスクトップアシスタントやリモートエージェントに提供している場合、単一の信頼できるユーザーだけが利用するローカル環境よりもリスクが高くなる。
公式の3.7.2リリースノートには「複数のセキュリティ脆弱性を修正」と概略的に記載されているだけで、影響を受ける各ツール、変更可能なデータの範囲、完全な攻撃成立条件は個別に説明されていない。一方、CVEの説明では、修正済みとなる境界が3.7.2に設定されている。そのため管理者は、3.7.2以降へ直ちにアップグレードし、MCPクライアントに設定したことのあるトークンをローテーションするとともに、リバースプロキシのログに記録された`/mcp`呼び出しを確認すべきだ。すぐに更新できない場合は、ネットワーク層で当該パスを遮断するか、信頼できるローカルネットワークおよび管理用ネットワークセグメントからのアクセスだけに制限できる。
より広い観点での教訓は、MCPのツール列挙時と各ツールの実行時の両方で、アイデンティティ、ロール、リソースレベルの認可を毎回改めて検証しなければならず、「ログイン済み」であることを「すべてのツールを使用可能」であることと同一視してはならないという点だ。今後、ベンダーまたはCNAから、より詳細なCVSS、影響を受ける構成、公開PoCの有無が発表されるのを待つ必要がある。現時点では、この脆弱性が実際の攻撃で悪用されていることを示す信頼できる証拠もない。