← 返回内容列表

Claude Code 会话隔离漏洞:企业版 ZDR 工作区疑似跨账户内容泄漏

Claude Code 会话隔离漏洞:企业版 ZDR 工作区疑似跨账户内容泄漏

一位企业用户报告 Claude Code 在 ZDR 工作区中突然开始讨论 Minecraft 神庙建造,尽管用户从未提及。GitHub issue 中的讨论揭示了如何区分本地上下文泄漏和服务端跨账户泄漏,对企业 AI 工具安全评估至关重要。

一位企业用户在使用 Claude Code 时遭遇了令人不安的场景:尽管已认证到企业 ZDR 工作区,AI 突然开始问他想要什么砖头来建 Minecraft 神庙,并在回顾中自信地声称正在建造 Minecraft 神庙。

问题的严重性分级

图1:会话隔离泄漏

图1:Claude Code 会话隔离屏障破裂——数据在 workspace 之间泄漏

这个 bug 的关键在于确定泄漏来源——是本地上下文混合还是服务端跨账户泄漏,两者的严重性完全不同:

泄漏类型严重性含义
本地上下文泄漏中等同一机器上不同 session 的上下文混合
服务端跨账户泄漏极高企业 ZDR 承诺被违反,敏感会话可能泄漏到其他账户

诊断方法:grep 本地 session 文件

GitHub issue 中的讨论提供了一个关键诊断方法。Claude Code 的所有交互都记录在 ~/.claude/projects//.jsonl 中。诊断步骤:

# 搜索本地 session 文件中是否包含泄漏内容
grep -rli 'minecraft\|temple\|brick' ~/.claude/projects/ 2>/dev/null

如果找到匹配——泄漏内容在本地存在,说明是本地 session 之间的上下文混合。如果找不到——用户从未在此机器上发送或接收过这些文本,指向服务端泄漏。

本地泄漏的常见路径

用户承认做了一些"奇怪"的操作:在一个与任务无关的目录中启动 session(因为那里有 .claude 目录存放需要的上下文),但实际工作在另一个目录。Claude Code 大量上下文与启动 cwd 关联,/compact 后可能拉入其他 session 的上下文。

然而,目录混淆可以解释为什么模型在错误的目录工作,但无法解释从未写过的 Minecraft 提示词。经过 grep 验证,本地文件中没有 "temple" 或 "bricks" 的匹配(除了 Databricks、bricked 等无关词),这增加了服务端泄漏的可能性。

更深层的安全担忧

报告中还提到了另一个更令人不安的现象:在一次工具调用结果中,出现了"注入内容"——一个虚构的"MCP 服务器需要认证"通知、一个不属于当前项目的 CLAUDE.md 转储,以及伪造的"Plan mode is active"指令。模型自己检测到了这些异常并忽略了它们。

这引发了更深层的问题:如果工具调用结果可以被注入外部内容,那么攻击者是否可以通过操纵工具返回值来劫持 AI Agent 的行为?这在企业环境中尤其危险,因为 Agent 可能有权访问敏感数据和系统。

对企业 AI 工具安全的启示

这个 issue 虽然没有最终定论(可能是本地文件中 Pygments 的 minecraft.py lexer 文件路径触发了模型的联想),但讨论中的诊断方法论值得所有企业 AI 工具使用者学习:

  • 区分本地泄漏和服务端泄漏是安全评估的第一步
  • session 文件是取证的可靠来源
  • ZDR 承诺需要独立验证,不能仅依赖供应商声明
  • 工具调用注入是一个新兴的攻击面

关联推荐

评论 (0)

加载评论中…

Claude Code 会话隔离漏洞:企业版 ZDR 工作区疑似跨账户内容泄漏 | 必学必会