事件经过
SiYuan v3.8.0 之前的版本在 http_request MCP 工具的目标 URL 参数中直接插值密钥占位符。由于生成的 URL 在服务器端获取时未验证目标主机,MCP 客户端可以提供攻击者控制的 URL,导致存储的密钥明文值被泄露到该主机,无需用户确认。
影响分析
这是 MCP 工具出口 + 密钥解析泄露模式的具体例子,已被 MCP 项目本身标记为优先风险:任何既能解析凭据又能发起出站网络调用的代理工具,在目标控制受攻击者影响或由客户端控制时,都是直接的泄露原语。
攻击途径
MCP 客户端(或通过间接提示注入被操控的代理)向 http_request MCP 工具发送请求,使用包含密钥占位符的攻击者控制目标 URL;SiYuan 在发起出站请求前将实际明文密钥值插值到该 URL 中,将其发送到任何公共主机,无需确认。
受影响系统
SiYuan v3.8.0 之前版本(http_request MCP 工具)
缓解措施
升级到 SiYuan v3.8.0 或更新版本;禁用/限制 http_request MCP 工具;对能够解析密钥的工具强制执行目标白名单和出口控制。