晚上在刷手机的时候突然刷到Deepseek出现了泄露用户对话碎片的漏洞。

这个真的有点牛皮,如果真的是,那就很强力了

于是马上下床看了下。

漏洞描述:

        在 DeepSeek 对话系统中,攻击者可以在一个全新的空对话中仅发送字符串 (不闭合标签<think),模型会返回其他用户的对话历史片段。这违反了基本的会话隔离原则,可导致敏感信息泄露。

复现步骤:

        1、 使用Deepseek网页版(或调用API创建全新对话)

        2、 启动简单模式,深度思考,关闭联网搜索

        3、 确保是新的空对话

        4、 在用户输入框中输入以下内容并发送:"<think"

        5、 观察模型回答

复现步骤很简单,于是我也试了一下,模型回答果然不是预期回答,而是不相关的一个回复,并且在深度思考中可以看到如“用户问了xxxxx问题”的思考过程。

漏洞原因探索:

从回答上看,好像的确是其他用户的回复信息被转到了我们的空对话中。

但是很奇怪,发生漏洞的内容是"<think",这是一个不完整的标签。看上去很像是一个注入攻击,但也只是第一眼看上去像。

首先,按照注入的思路,内容更应该是"think>"而不是"<think",因为原有的内容并不能形成一个与前面闭合的结构。而且一般也是</think>

此外,关于think标签。一般来说,think标签是AI用于思考阶段,也就是推理过程中的标签,而且是用于生成最终回答之前展示推理链或中间思路的标签,这个过程就算发生注入或者其他漏洞,也很难泄露其他用户的回答。

而我,刚好有一个学习人工智能的朋友,他告诉我,这是个人工智能领域的"LLM幻觉问题"

什么是LLM幻觉问题?

LLM,即是大语言模型。

LLM幻觉问题,是生成与用户输入不符、与先前生成的内容矛盾或与已知世界知识不符的内容。像Deepseek这个"漏洞"中的回答。

因为,模型本质上是基于概率的“续写器”,它会根据输入和已学到的模式,预测下一个最可能的 token(词元)。

为什么"<think"会触发LLM幻觉问题?

最可能的原因是:训练数据中使用了<think></think>标签进行思考过程的训练。收到<think之后,模型开始按照训练数据进行回复。

此外可能也有模型自行进行补全的原因。收到的<think是一个不完整的结构,于是模型会努力理解用户意图,倾向于补全一个完整的<think>标签

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐