MCP 允许列表防不住第二跳:一次合法读取可篡改下次调用参数
Future_AGI · reddit · 2026-09-04
Future AGI 发文指出一个窄而关键的 MCP 安全问题:允许列表只回答身份问题,不保护授权意图。
- 攻击链示例:允许的 read 工具 → 读取到不可信工具输出 → 该输出改变了下一个允许的 write 工具的参数。所有调用都匹配配置的 allowlist,但 prompt injection 已跨过边界。
- 核心主张:在分发下一个工具调用前,运行时需要一个「第二跳决策」——把由输出衍生的参数当作目标工具的参数来审查:它是否来自不可信文本?是否请求了用户授权过的能力?是否符合目标工具的预期范围?
- 现有 guardrails 的盲点:多数只校验工具身份,不检查「这次调用为何带这些参数」。输入侧检查需要参数溯源——哪些值来自上一次工具结果,哪些来自用户或 agent 计划。
- 作者介绍了自家 Apache-2.0 网关在 MCP 边界保留的检查项:server/tool 策略、工具参数、文本结果、每工具限额,并开放讨论:第二跳检查应放在 runtime、MCP 边界、策略层还是执行器?
「编程与Agent」频道最新
- JetBrains 长文深讲 Go 错误处理:错误即值的惯用法与最佳实践 — rseroter · 2026-09-04
- Agent 训练系列第四期定档:用 trl 与 openenv 搭建智能体环境 — SergioPaniego · 2026-09-04
- 开发者开源 agent 工具层基准:专测鉴权、重试与记忆类失败 — Kind-Atmosphere9655 · 2026-09-04
- 区分值与位置:让 Rust 所有权豁然开朗的心智模型 — Abhishekcur · 2026-09-04
- Claude Code iOS 版即将支持斜杠命令,已有用户提前体验 — testingcatalog · 2026-09-04
- Grok Bot 卖的「持久 agent」,自己搭 VPS 加分层模型就能白嫖 — Immediate_Bear_6132 · 2026-09-04