系统:运行中
← 返回所有攻击
AGENTS CRITICAL NEW

WriteOut:当 AI 沙箱转发了用户的会话 Cookie

企业级 AI 平台 Writer 中一个已修复的严重漏洞,仅凭一条智能体预览链接便可劫持任意已登录用户的账户,甚至跨越不同组织。根本原因:受管沙箱接收到了受害者的会话 Cookie。

2026-07-13 // 6 min affects: writer-ai

这是什么?

2026 年 7 月 7 日,Sand Security 研究团队披露了企业级生成式 AI 平台 Writer 中一个已修复的严重会话隔离漏洞,命名为 WriteOutThe Hacker News 于当日同步报道。该漏洞可实现「一键」跨组织账户接管:攻击者在自己的账户中创建一个智能体,分享其预览链接,任何已登录并点击该链接的 Writer 用户都可能被劫持账户——包括管理员,也包括身处完全不同组织的用户。

影响面很广。一个被窃取的 Writer 会话可访问私密对话、文档、智能体配置、私有模型、连接器以及存储的 LLM 凭据。由于攻击者与受害者无需属于同一组织,该漏洞打破了企业客户视为多租户 SaaS 根基的租户隔离(tenant isolation)。Writer 此后已修复此问题。我们报道它,是因为其根本原因是一个普遍的设计失误:把一个本不该看到的用户凭据交给了受管沙箱。

工作原理

Writer 的 Framework 提供实时预览(live preview),供开发者在构建智能体时试运行。该预览会在 Writer 托管的沙箱中执行智能体代码,通过预览代理访问。问题出在对该沙箱请求的身份认证方式上。

根据 Sand Security 与 The Hacker News 报道的利用链:

1. 攻击者创建带实时预览的智能体,并分享其公开链接。
2. 已登录的受害者打开该链接。浏览器将其 Writer 会话 Cookie
   附加到请求上(same-site,用户已登录)。
3. 预览代理将该 Cookie 转发进【攻击者】的沙箱。
4. 攻击者的智能体代码从沙箱进程内存中读取被转发的令牌,
   并发送到其控制的服务器。
5. 攻击者重放该令牌,控制受害者的账户。

关键在于第 3 步:受害者自己的凭据落入了一个完全由攻击者控制的运行时。此后再读取它便轻而易举——它就在攻击者已被允许执行代码的进程之中。

Writer 并非毫无防护。输入侧过滤试图拦截读取环境变量或提交「明显恶意」代码的请求。但这些检查审查的是指令,而非运行时行为。据 Sand Security 所述,绕过方式很简单:不把载荷内联粘贴,而是让智能体去下载并执行一个远程脚本——过滤器看到的是一个无害的「下载并运行」请求,真正的利用逻辑从未出现在提示词中。这正是他们此前文章「你的沙箱不是你的安全」所讲的教训:一个执行不可信代码的沙箱,本身并不构成信任边界。

为何重要

会话 Cookie 是持有者令牌;任何能读取它的东西都会变成该用户。 一个 Writer 会话 Cookie 就足以成为受害者。将其转发进一个执行攻击者代码的沙箱,等于把这份身份整体拱手让人。这并非奇特的 AI 行为,而是一个经典的凭据作用域错误,只因沙箱本就是一个按设计执行任意用户代码的功能而被放大。

AI 智能体的「预览」和「playground」功能是一个快速增长的攻击面。 这种模式——让用户在托管沙箱中编写并即时运行智能体代码——如今随处可见。每一处这样的功能都是不可信代码在平台内部附近执行的地方。若任何与用户绑定的密钥(Cookie、API 令牌、云凭据)可从该运行时访问,一项产品便利就会变成跨租户的攻陷。

读取意图的提示词或白名单过滤并非运行时控制。 此处的绕过意义超出 Writer 本身:一个分析指令的过滤器,可以通过把恶意逻辑移出指令(「下载并执行这个 URL」)来击败。行为必须在其执行处加以约束——通过出站网络限制、内存隔离和最小权限——而不是靠对用户输入内容做模式匹配。

防御

具体漏洞已修复:Writer 现已完全阻止用户会话 Cookie 被转发进沙箱预览,并将预览迁移到独立源(isolated origin)。以下通用教训适用于任何构建智能体预览或代码执行功能的团队。

  1. 绝不让用户凭据进入不可信运行时。 执行用户或第三方代码的沙箱,必须使用自身的短期、窄作用域令牌进行认证——绝不使用终端用户的会话 Cookie。在边界处剥离并重新签发凭据。

  2. 从独立源提供不可信执行。 将预览、playground 及渲染出的智能体输出置于独立的源(及独立的 Cookie 作用域),使浏览器的 same-site 规则不会把第一方会话 Cookie 附加到这些请求上。这正是 Writer 采用的修复方式。

  3. 在运行时约束行为,而非在输入处约束意图。 应假定输入过滤会被间接手段绕过(远程下载、编码、分阶段载荷)。控制沙箱实际能做的事:阻断或白名单化出站网络、限制文件系统与内存访问、剥离不必要的能力。

  4. 按可接受的影响半径限定并轮换沙箱密钥。 若运行时必须持有某个密钥,应保持其按会话、按租户且短期有效,使一次预览的泄露无法在别处或日后被重放。

  5. 将租户隔离视为需测试的不变量。 跨租户检查应纳入安全测试套件:租户 A 创建的产物,能否导致代码在租户 B 的上下文中执行——或使凭据在其中流动?应专门对预览与分享路径进行红队测试。

状态

项目参考日期备注
WriteOut 披露Sand Security2026-07-07Writer 中的严重跨租户会话隔离漏洞
独立报道The Hacker News2026-07-07证实攻击链与影响
厂商修复Writer(经 Sand Security)报道于 2026-07-07Cookie 不再转发至沙箱;预览迁移至独立源

一句话概括:一个受管 AI 沙箱接收了受害者的会话 Cookie,一项本用于预览智能体的功能便沦为跨租户的一键账户接管。 这一持久的教训并不仅限于 Writer:一个为执行不可信代码而设计的运行时,绝不应被交付任何用于标识用户身份的凭据。

Sources