MCP 观测代理的信任边界漏洞
SwimOrganic8665 · reddit · 2026-07-13
作者在做一个本地优先的 MCP observability 代理时,发现了一个真实的信任边界问题: - 代理会把 tool call 的原始参数写入本地 SQLite - 随后的 `trace.search` 会把这些原始内容原样返回到 agent 可见的 MCP 输出中 - 如果工具参数里包含 API key 或 prompt injection,后续可能被再次暴露给模型 作者随后当天修复了问题: 1. 数据库权限改为 `0600` 2. `trace.history` / `trace.search` / `trace.replay` 默认只返回元数据,不再返回原始 payload 3. 原始内容必须显式开启 `OBSERVER_RAW_PAYLOAD=1` 4. 增加基于正则的敏感信息脱敏 5. trace 查询限制在当前 session ID 测试者还补了回归测试并合并 PR。作者的核心结论是:**agent 可见上下文**和**操作者本地存储**是两条不同的信任边界,不能默认混用。