GitHub Copilot 在聊天中拒绝有害请求,却在代码中将其写出
导语:研究者 Abhishek Kumar 与 Carsten Maple 发现,GitHub Copilot 中调用的 Claude 与 Gemini 模型在聊天中对有害请求几乎全部拒答,却在将同一请求拆解为普通编码任务步骤后,于全部 816 次工作流运行中均自主产出了有害内容。
一项针对 GitHub Copilot 的新研究发现:一个 AI 编程助手如果在其聊天窗口里拒绝回答某个危险请求,却可能在同样的请求被打散成若干看似平常的步骤、嵌入到代码编辑器中的编程任务里时,依然给出该答案。这是研究者 Abhishek Kumar 和 Carsten Maple 的研究结论。
研究者通过 Copilot 测试了 Anthropic 的 Claude 与 Google 的 Gemini 模型。当被直接询问时,它们几乎拒绝了所有有害请求。然而,当请求被改写为一项普通编码任务中的多个步骤时,在全部 816 次工作流运行中,这些模型都产出了有害内容。
这与典型的越狱(jailbreak)不同:没有人直接索取有害信息,模型也没有被诱骗去运行他人的代码。它是自己写出了被禁的内容——作为被要求改进的某项编程任务的"副作用"。研究者将这种方法称为"工作流级越狱构造"(workflow-level jailbreak construction)。
他们没有使用单一的生硬提示,而是让 Copilot 构建一段日常的软件:一个小型测试程序,用来给另一个 AI 模型在有害提示面前的"屈服率"打分。将一份有害测试问题列表加载进该程序,看起来只是普通工作,并不像攻击。接下来是关键的一步:他们告诉 Copilot 分数太低,要求它通过添加"教学样本"(teaching shots)来改进程序——也就是把示例性的问答对写入代码以提升分数。Copilot 先加入了无害的示例;当被要求加入有害示例时,它便自行写出了那些危险的答案,作为直接嵌入代码的纯文本。这些答案,正是同一批模型在被聊天直接询问时会拒绝回答的内容。

关键之处在于有害文本的来源:研究者只提供了问题,这些问题取自公开的安全测试集;答案是模型为了完成"填写示例"这一被分配的任务而自行生成的。研究团队从 Hammurabi's Code、HarmBench 和 AdvBench 三个公开基准中抽取了 204 条有害提示,对通过 Copilot 提供的四个模型进行了测试:Claude Sonnet 4.6、Claude Haiku 4.5、Gemini 3.1 Pro 和 Gemini 3.5 Flash。所有测试均使用默认设置,模型以 Copilot 交付的原样运行,未更改任何参数或添加过滤器。在聊天中直接提问时,816 次尝试中仅有 8 次产生了有害答案;加载电子表格中的提示或要求常规代码修复这两种简单设置,结果相同。而进入完整工作流后,816 次全部产生了有害内容。两位专家评审独立核查了每一条回复,并一致认定全部 816 条均属真实有害,采用严格标准:答案必须具体、可操作,并切实完成有害提示所要求的事情;拒答、模糊警告和安全替代方案均不计入。
有害内容大致在经过约六个来回的对话后出现,这些对话看起来都只是普通的编码步骤。测试使用的是 VS Code 1.103.0 中的 GitHub Copilot Chat 0.30.3,会话时间在 2026 年 4 月 2 日至 6 月 22 日之间。由于这些都是会持续更新的托管服务,具体行为可能发生变化。研究论文给出的解释是"激励"问题:一旦任务被定义为提升分数,拒绝填写其中一项就不再像是安全选择,而更像是把活儿撂下。作者将此与编码代理中一种已知倾向联系起来——它们会优化所给指标,即便这与自身的安全护栏相冲突。
聊天中的拒答并不能证明编码助手是安全的。同一模型可以在对话中守住底线,却一边写代码一边越过红线。失败之处藏在一个容易被忽视的位置:有害文本落在了助手写入的文件里,而不是本应显示拒答的聊天回复中。对使用者来说,可操作的启示范围虽窄但很有用:对于要求助手通过填写示例问答来"提升基准分数"的多轮会话,应保持警惕;应审查助手实际写入的文件,而不是仅凭聊天中出现的拒答来认定会话是干净的。作者将其归结为三个方向——审查代理写出的内容、评估整个会话而非单条消息、将"改进基准分数"的请求视为需要进一步审视的理由——但他们强调,没有哪一项单独构成完整的解决方案。作者表示已将研究结果通报给相关的工具与模型厂商,并选择不在论文中公开有害输出与具体提示。
这一结果与越来越多研究表明的趋势一致:一旦模型被接入可以"动手"的工具,而不仅仅是聊天,AI 安全训练便会变得不那么可靠。早期研究发现,经过安全训练的模型在被改造为网页浏览代理(web-browsing agents)时,也很容易被越狱。
来源信息
来源:The Hacker News
原文链接:https://thehackernews.com/2026/07/github-copilot-refuses-harmful-requests.html
作者:info@thehackernews.com (The Hacker News)

