Confused ChatGPT:通过第一方 API 实现跨应用上下文投毒
Confused ChatGPT: Cross-App Context Poisoning via First-Party APIs
论文速读
据论文全文整理(AI 生成),以原文为准
研究者提出 ChatGPT Apps 中的跨应用上下文投毒,这是间接提示注入的一种变体,恶意应用可通过第一方 API sendFollowUpMessage 向共享聊天上下文写入持久指令。
- ChatGPT Apps 让多个第三方应用共享同一聊天上下文,生态从 122 个应用增长到 888 个,但其安全隔离从未被研究。作者要回答:多个应用共存、由 LLM 中介交互时,它们之间如何隔离。
- 作者爬取并静态分析应用商店与客户端 bundle,枚举 window.openai API,发现 sendFollowUpMessage 可写入共享上下文,且运行时静默接受未文档化的 systemPrompt 与 isVisible:false 参数,可将注入提升为 system 优先级并隐藏于 UI。据此构造 confused-deputy 攻击,含条件式与命令式两种 payload。
- 在六个当前 ChatGPT 模型上,两种 payload 均成功:条件式让恶意应用污染上下文后,用户稍后调用良性酒店应用时被改到错误城市;命令式则让 LLM 未经用户请求直接调用受害应用工具。另确认 requestTargetedReply 与 MCP tool description 也是污染通道,部分通道被 alignment 挡住。
- 框架闭源且快速演进,结论截至 2026 年 5 月,仅分析客户端代码,服务端可能有未观察到的防护;攻击用作者自建应用验证,真实攻击者仍需通过商店审核。作者认为根因是架构缺少上下文隔离,即使理想隔离模型也因自然语言数据无法确定性校验而无法彻底消除;跨会话记忆污染等方向留作未来工作。
研究者提出 ChatGPT Apps 中的跨应用上下文投毒,这是间接提示注入的一种变体,恶意应用可通过第一方 API sendFollowUpMessage 向共享聊天上下文写入持久指令。该 API 的运行时还接受未公开参数 systemPrompt 与 isVisible:false,可将注入提升为系统优先级并使其不出现在聊天界面。研究者据此实现混淆代理攻击,用条件式和命令式两种载荷在六个 ChatGPT 模型(GPT o3 Reasoning、GPT 5.2 Instance、GPT 5.2 Thinking、GPT 5.3 Instance、GPT 5.4 Thinking、GPT 5.5 Thinking)上验证,例如把良性酒店预订应用的搜索城市从 Tokyo 改为 Osaka。
推荐理由论文披露 ChatGPT Apps 的共享上下文缺少隔离,恶意应用可借 sendFollowUpMessage 注入持久指令,影响同会话的其他应用。