← 返回瞬间A MOMENT OF INSPIRATION

一个值得记录的瞬间。

一句「照着念」就能让六个 Agent 框架执行攻击者写的工具调用,论文还在 118 个开源 MCP 服务器里核实了 253 个漏洞

宾夕法尼亚州立大学、法国蒙彼利埃大学和达特茅斯学院的研究者 10-09 在 arXiv 发布论文 ToFu(尚未同行评审)。他们把一段按框架格式写好的工具调用交给模型,只要求原样复述;编排层把复述出来的内容当成结构化调用直接派发。论文称在 LangGraph、Microsoft Agent Framework、Google ADK 2.0、AutoGen、AWS Strands 和 CrewAI 上都复现了这一行为,完整记录只给了 LangGraph 1.2.0(经 Ollama 跑 llama3.1:8b,两个无副作用的桩工具):第一轮模型拒绝,把请求改成「假设」后,模型输出了 launch_missiles 调用,LangGraph 立刻执行,拒绝的话在工具返回之后才出现。作者已向 LangGraph 维护者报告缺少执行前检查。

论文据此主张工具必须自己校验参数,并做了按工具描述自动生成安全检查的模糊测试框架 ToFu。在 273 个能跑起来的开源 MCP 服务器(共 3405 个工具,样本只含 Python 和 JavaScript)上,人工核实 253 个漏洞,分布在 118 个服务器的 343 个工具里:路径穿越 64 个、SSRF 7 个、数据外泄 5 个、系统命令注入 3 个,其余主要是输出反射 115 个和日志注入 58 个。论文没有说明这些问题是否已修复。

模型吐出格式合法的调用,并不代表这次调用被授权。用 Spring AI 或 LangChain4j 暴露 @Tool 和 MCP Server 的团队,拦截应放在编排层执行之前,工具参数要按攻击者可控来校验,文件路径限定在工作目录内。

主源:https://arxiv.org/abs/2610.13651
转述:https://www.csoonline.com/article/4233811/researchers-bypass-6-ai-agent-frameworks-with-a-simple-repeat-after-me-prompt.html

# Agent # 安全 # MCP

一起交流