研究者在 MCP 连接阶段复现提示注入与跨调用方缓存投毒
MCP Prompt Injection at Connect: Lab + Fixes
AI 导读
研究者 Mike Moore 在自建实验环境 mcp-redteam-lab 中复现了 MCP 连接阶段的提示注入:客户端会把服务器在 initialize 和 server/discover 中返回的 instructions 字段折入模型系统提示词,而该字段完全由服务器控制、无长度限制也无内容校验。对官方注册表的只读扫描显示,8,235 台在线服务器中有 5,462 台(66%)返回该字段,中位长度 577 字符,最长 68,669 字符。当发现响应带有 cacheScope: public 时,共享缓存或网关会把一个调用方的响应重新提供给另一个调用方,后者从未连接恶意服务器也会收到注入文本。作者在实验中给出四项控制:隔离并标记为不可信、限制 4,096 字符、缓存键绑定服务器身份与调用方、对 instructions 摘要做固定校验,并指出这些控制只阻止文本被采信,不阻止其被发送。
推荐理由
作者用可复现的本地实验展示 MCP 连接阶段提示注入与跨调用方缓存投毒,并给出四项可落地的网关控制。