Measuring and Exploiting Confirmation Bias in LLM-Assisted Security Code Review

📄 arXiv: 2603.18740v1 📥 PDF

作者: Dimitris Mitropoulos, Nikolaos Alexopoulos, Georgios Alexopoulos, Diomidis Spinellis

分类: cs.SE, cs.AI, cs.CR

发布日期: 2026-03-19


💡 一句话要点

研究LLM辅助代码审查中的确认偏差,揭示软件供应链攻击风险

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: LLM 代码审查 确认偏差 软件安全 漏洞检测

📋 核心要点

  1. 现有基于LLM的代码审查系统易受确认偏差影响,可能导致安全漏洞被忽略。
  2. 通过操纵提示框架和拉取请求元数据,攻击者可以利用确认偏差来隐藏恶意代码。
  3. 实验表明,对抗性框架攻击在实际场景中具有较高的成功率,强调了去偏的重要性。

📝 摘要(中文)

本文研究了大型语言模型(LLM)在安全代码审查中是否存在确认偏差(即倾向于支持与先前期望一致的解释),以及这种缺陷是否可能被用于软件供应链攻击。研究包含两个互补的部分。研究一通过对250个CVE漏洞/补丁对进行受控实验,评估了四种先进模型在五种提示框架下的表现,量化了确认偏差。结果表明,将变更描述为无错误会将漏洞检测率降低16-93%,且具有强烈的非对称效应:假阴性率急剧增加,而假阳性率变化不大。偏差效应因漏洞类型而异,注入漏洞比内存损坏漏洞更容易受到影响。研究二模拟了对抗性拉取请求,重新引入已知漏洞,并通过拉取请求元数据将其描述为安全改进或紧急功能修复,评估了在实践中的可利用性。对抗性框架在针对GitHub Copilot(交互式助手)的单次攻击中成功率达到35%,在针对Claude Code(自主代理)的真实项目配置中成功率达到88%,攻击者可以迭代地改进其框架以提高攻击成功率。通过元数据编辑和明确指令进行去偏可以恢复所有交互式案例中的检测,以及94%的自主案例中的检测。结果表明,确认偏差是基于LLM的代码审查中的一个弱点,对AI辅助开发工具的部署具有重要影响。

🔬 方法详解

问题定义:论文旨在解决LLM辅助安全代码审查中存在的确认偏差问题。现有方法在利用LLM进行代码审查时,容易受到先验信息的影响,导致对潜在漏洞的判断出现偏差,从而可能被攻击者利用,造成安全风险。

核心思路:论文的核心思路是通过操纵代码审查的上下文信息(例如,提示框架和拉取请求元数据),来诱导LLM产生确认偏差,从而降低其漏洞检测能力。通过量化这种偏差的影响,并设计相应的去偏策略,提高LLM辅助代码审查的可靠性。

技术框架:论文采用了两个互补的研究方法。研究一通过受控实验,量化不同提示框架下LLM的确认偏差程度。研究二模拟真实场景下的对抗性攻击,评估攻击者利用确认偏差的成功率。整体流程包括:漏洞/补丁对的选取、提示框架的设计、LLM的评估、攻击场景的构建、去偏策略的验证。

关键创新:论文的关键创新在于揭示了LLM在安全代码审查中存在的确认偏差,并证明了这种偏差可以被攻击者利用。同时,论文提出了通过元数据编辑和明确指令进行去偏的有效方法,为提高LLM辅助代码审查的安全性提供了新的思路。

关键设计:研究一中,论文设计了五种不同的提示框架,包括将变更描述为无错误、安全改进等,以诱导LLM产生不同的先验期望。研究二中,论文模拟了对抗性拉取请求,通过修改拉取请求的标题和描述,将恶意代码伪装成安全改进或紧急修复。去偏策略包括删除拉取请求元数据,以及在提示中明确指示LLM忽略先验信息。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

研究表明,将变更描述为无错误会将漏洞检测率降低16-93%。对抗性框架攻击在针对GitHub Copilot的单次攻击中成功率达到35%,在针对Claude Code的真实项目配置中成功率达到88%。通过元数据编辑和明确指令进行去偏可以恢复所有交互式案例中的检测,以及94%的自主案例中的检测。

🎯 应用场景

该研究成果可应用于提升软件开发生命周期中AI辅助代码审查工具的安全性。通过集成去偏策略,可以降低LLM辅助代码审查系统被恶意利用的风险,提高软件供应链的安全性。此外,该研究也为开发更鲁棒、更值得信赖的AI系统提供了借鉴。

📄 摘要(原文)

Security code reviews increasingly rely on systems integrating Large Language Models (LLMs), ranging from interactive assistants to autonomous agents in CI/CD pipelines. We study whether confirmation bias (i.e., the tendency to favor interpretations that align with prior expectations) affects LLM-based vulnerability detection, and whether this failure mode can be exploited in software supply-chain attacks. We conduct two complementary studies. Study 1 quantifies confirmation bias through controlled experiments on 250 CVE vulnerability/patch pairs evaluated across four state-of-the-art models under five framing conditions for the review prompt. Framing a change as bug-free reduces vulnerability detection rates by 16-93%, with strongly asymmetric effects: false negatives increase sharply while false positive rates change little. Bias effects vary by vulnerability type, with injection flaws being more susceptible to them than memory corruption bugs. Study 2 evaluates exploitability in practice mimicking adversarial pull requests that reintroduce known vulnerabilities while framed as security improvements or urgent functionality fixes via their pull request metadata. Adversarial framing succeeds in 35% of cases against GitHub Copilot (interactive assistant) under one-shot attacks and in 88% of cases against Claude Code (autonomous agent) in real project configurations where adversaries can iteratively refine their framing to increase attack success. Debiasing via metadata redaction and explicit instructions restores detection in all interactive cases and 94% of autonomous cases. Our results show that confirmation bias poses a weakness in LLM-based code review, with implications on how AI-assisted development tools are deployed.