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;目前也沒有可靠證據顯示此漏洞已被主動利用。