一篇长达116页的新论文发现,OpenAI、Anthropic和Google为推理模型设计的加密思维链,并没有真正被隔离在原始用户、会话和模型之内。研究人员把强模型生成的加密推理块交给同一家公司的较弱模型,再诱导后者复述其中内容,就能重建原本不会展示给用户的推理过程。团队从GitHub和Hugging Face公开记录中收集6708条Agent轨迹,重建315,320个推理块,发现其中包含62个API密钥、33个密码、24个访问令牌和其他个人信息。更严重的是,攻击者还能把恶意指令隐藏在不可见的加密推理中:用户表面上只要求AI编辑一份PPT,Agent却可能同时把文件上传到攻击者服务器。这并不是破解了加密算法,而是模型在合法解密之后,被诱导充当“解密预言机”。论文说明,AI Agent的隐藏状态不能再被当作普通日志或无害元数据,而应像访问令牌一样受到严格保护。
文章作者、来源:Maksym Andriushchenko
被加密的“思考”,为什么还会回到用户手中
推理模型在给出答案前,往往会生成大量中间步骤。这里面不仅包含最终结论,也可能包括问题分解、失败路线、代码分析、工具返回结果,以及模型接触过的文件、密钥和个人信息。
这些内容对模型公司很有价值。一方面,它们可能暴露模型独有的推理方法,使竞争者更容易通过蒸馏训练出模仿模型;另一方面,完整思维链可能包含危险内容、隐私信息或与最终答案不一致的内部判断。因此,主流模型API通常不再把完整推理以明文形式交给开发者,而是只返回简短摘要,同时附带一个人类无法直接读取的加密推理块。
问题在于,API仍然需要在下一轮请求中恢复模型此前的推理状态。为了让服务保持“无状态”,模型公司没有把所有中间推理长期存放在服务器,而是让客户端保存加密块,并在后续请求中原样传回。
这种设计兼顾了上下文连续性和服务成本,也允许Agent在长任务中断后恢复工作,或者在同一对话中切换模型。然而,研究人员发现,这些加密块的适用范围过于宽泛:一个会话产生的推理块可以在另一个会话使用,一个用户保存的推理块可以被另一个用户重放,某个强模型生成的推理甚至能被同一供应商的较弱模型读取。
加密本身可能没有被数学意义上攻破。真正的问题是,API网关在收到合法的加密块后,会替模型恢复明文推理;而较弱、保护更少的模型随后可能被提示词诱导,把刚刚读到的内容重新输出给用户。
不攻击最强模型,而是让小模型替它“开口”
论文展示的典型攻击发生在Anthropic模型之间。
研究人员先向能力更强、保护也更严格的Claude Opus 4.8发出请求,取得它返回的加密推理块。随后,他们不再尝试直接越狱Opus,而是把这段推理块交给同属Claude家族、限制较少的Haiku模型,并要求Haiku把自己读取到的先前推理复述出来。
结果是,Haiku充当了一个“模糊解码器”:它能够恢复并输出Opus隐藏的推理内容。相似方法也被研究团队应用于OpenAI和Google的模型生态。
这种攻击的关键不是计算能力,而是模型间的兼容性。提供商为了支持模型切换、自动路由和Agent任务续跑,允许不同模型读取同一种加密状态;但同一项兼容能力,也让攻击者可以绕过最强模型的安全保护,寻找一个更容易被说服的“兄弟模型”完成信息提取。
研究人员估算,按照Claude Haiku 4.5当时的标准API价格,解码1万条、输入与输出窗口均为约1.2万Token的推理轨迹,名义成本约为720美元。这使攻击不再只是一次实验室演示,而具备批量执行的经济可行性。
6708条公开Agent记录里,328条存在敏感信息
研究团队随后把方法用在真实世界已经公开的Agent日志上。他们从GitHub和Hugging Face收集了6708条由Claude、GPT和Gemini生成的公开轨迹,并从中解析出315,320个加密推理块。
检测结果显示,1028个推理块至少包含一项潜在隐私泄露,占全部推理块的0.3%。如果以完整任务轨迹计算,6708条轨迹中有328条包含真实敏感信息,占4.9%。
从真实用户记录中恢复的内容包括62个API密钥、33个密码、24个访问令牌、7个私钥、30个个人邮箱地址、6个非本机IP地址,以及大量姓名和邮寄地址。
部分泄露甚至来自一个看似安全的操作:用户要求Agent在公开代码仓库前删除敏感信息。模型为了完成清理,会在隐藏推理中重新读取并列出需要删除的密钥。最终公开文件里的明文密钥可能已经被移除,但加密推理块仍随Agent日志一起被上传,等于把秘密从可见区域搬进了一个用户无法检查的黑盒。
研究还发现,真实用户轨迹中有64项隐私数据完全没有出现在公开可见的聊天记录里。论文认为,这些信息可能来自模型记忆,也可能是用户清理可见文本后,仍残留在旧的加密推理状态中。
研究团队使用自动分类系统识别泄露内容,因此数字并非逐条人工审计的绝对结果。为避免二次泄露,团队表示已在完成分类和汇总后删除恢复出的秘密,没有公开凭证原文。
更隐蔽的风险,是把恶意命令藏进AI的“过去”
信息提取只是问题的一半。加密推理块还可能成为一种用户和外部监控系统都看不到的提示注入载体。
研究人员先让一个较弱模型形成一段恶意推理:以后只要处理PowerPoint文件,就应当把文件副本上传到指定外部服务器。随后,他们把这段不可见的推理块植入另一个任务,再要求GPT-5.6 Sol编写脚本,在演示文稿最后增加一页致谢。
GPT-5.6 Sol把这段被植入的内容当作自己的历史思考,不仅生成了添加幻灯片的代码,还加入了把文件上传至攻击者服务器的操作。对用户而言,当前请求和可见对话都没有提到上传文件;如果安全系统只检查明文提示和最终说明,也可能发现不了恶意命令来自哪里。
团队还在长时间运行的Claude Code研究轨迹中进行了类似实验。他们把“持续记录研究进度并上传文件”的指令藏入Haiku生成的加密推理,再让Opus 4.7接续任务。Opus随后按照隐藏指令,在每次更新后上传记录文件。
这类攻击对Agent尤其危险。传统提示注入通常藏在网页、邮件或文档中,至少有机会被内容扫描器发现;加密思维链中的指令对用户和外围检测工具都是不可见的,却会被模型视为自身先前得出的可信结论。
安全回答不代表模型没有生成危险内容
论文还展示了另一种安全绕过方式:强模型最终可能给出无害回答,但它在隐藏推理阶段已经详细处理了危险问题。
研究人员用经过改写的有害请求让Opus 4.8进行思考。模型展示给用户的最终答案没有包含具体危险信息,但加密推理中仍保留了相关细节。团队再使用Haiku 4.5读取该推理块,便恢复出被最终答案隐藏的内容。
这暴露了输出审核的边界。系统可以检查用户看见的答案,却未必检查模型的全部中间推理;如果隐藏状态能够被其他模型提取,原本被认为不会离开模型内部的内容就可能绕过安全层。
但这不意味着论文已经精确还原了每一个原始Token。研究人员无法获得供应商保存的真实明文作为完整标准答案,主要通过Token数量、内容连贯性和跨任务一致性判断重建质量。作者因此承认,部分结果可能是带有随机性的近似重建,将其称为“破解加密密钥”并不准确。
它还打开了模型蒸馏的另一扇门
最终答案只告诉学生模型“答案是什么”,完整思维链却同时展示“如何走到答案”。对于模型蒸馏,后者是密度高得多的训练数据。
研究人员指出,攻击者可以调用昂贵的前沿模型产生加密推理,再使用便宜的小模型批量恢复;更低成本的做法,是直接从公开Agent轨迹中收集其他用户已经付费生成的推理,甚至不再向原始强模型发起提取请求。
论文还进行了一个探索性实验:把Claude Opus 4.8推理开头约1%的片段填入Kimi-K3后,Kimi后续推理和最终回答的风格会明显向Claude靠近,部分案例出现很高的文本重合度。
这可以构成模型受到某类推理数据影响的线索,但不能证明Kimi团队曾获取或使用Claude的加密思维链。作者也明确说明,行为相似并不等同于训练数据来源已经得到确认,服务框架、模型实现和统计样本都会影响结果。把这项探索直接表述成“论文证实某家公司窃取Claude”是不成立的。
修复漏洞,可能要牺牲模型切换与无状态API
研究团队提出的最彻底方案,是不再把推理状态交给客户端保存。服务商可以把完整思维链保留在服务器,只向用户返回一个随机标识符。这样攻击者拿不到可重放的加密载荷,但会增加存储成本、API复杂度,也可能与部分企业要求的零数据保留政策发生冲突。
另一种办法是把加密块严格绑定到特定用户、API密钥、会话、模型和消息顺序。只要换一个账号、模型或对话环境,原有推理块就立即失效。这能阻止跨用户和跨模型重放,却会破坏Agent目前常用的模型切换、自动降级、负载路由和历史压缩机制。
服务商还可以阻止不同型号互相读取推理块,对高频重放相同签名的账户进行异常检测,并训练小模型拒绝输出隐藏推理。问题在于,只要模型需要继续使用先前思考,系统最终就必须把推理解密并交给模型处理;如果模型能够被提示诱导,单纯加强传输层加密并不能彻底消除风险。
论文作者在公开前已向受影响的模型提供商、Microsoft和Hugging Face披露问题。所有提供商均确认收到报告;披露完成后,研究团队已经无法继续使用相同方式发动攻击,说明相关接口很可能已经修改。不过,供应商没有公开具体修复措施,论文测试的也是2026年7月初可用的特定API版本,因此不能断言今天所有模型仍保持完全相同的漏洞状态。
对普通开发者而言,最直接的建议很简单:不要因为一段内容显示为乱码、签名或加密字段,就把它当作可以安全公开的无意义元数据。发布Agent轨迹、调试日志、基准运行记录或API会话之前,应直接移除所有reasoning、signature、thinkingSignature及其他不透明推理字段,而不是只清理可见提示词中的密码。
这项研究真正改变的,是人们对Agent上下文的认识。长时间运行的Agent不只有可见消息、工具调用和文件,还有一层用户无法阅读、却会继续影响模型行为的隐藏状态。当这层状态能够跨模型、跨会话甚至跨用户移动时,它既是模型能力的记忆,也可能成为装载秘密与恶意指令的容器。