XOXO: Stealthy Cross-Origin Context Poisoning Attacks against AI Coding Assistants
Idea
XOXO 研究 coding assistant 自动收集跨来源代码上下文时的推理期风险:攻击者只对共享代码作保持其功能的变换,也可能使后续生成的目标函数出现 bug 或 vulnerability。论文提出 GCGS 在变换组合空间中以模型 confidence 引导搜索,并进行受控代码测试与 Copilot 案例验证。
Research Problem
共享 repo 片段常与用户当前代码合并进同一 prompt,来源信任未明确分隔;常规审查关注修改后的代码本身是否有恶意,却可能漏掉它对模型补全的间接影响。已有代码对抗攻击多依赖梯度、分类 logits 或显式恶意自然语言,不能直接覆盖此情形。
Insight
源代码运行语义保持不变,并不意味着 LLM 对其命名与结构的条件分布保持不变。多个降低 confidence 的变换有时可组合扩大扰动,支持启发式搜索;该单调性是所测模型/数据上的经验趋势,不是任意代码或生成器的数学保证。
Method
- 威胁模型假设恶意贡献者能提交共享 repo 修改,并了解 assistant 的上下文收集与目标开发任务;目标模型权重和被补全功能的规格保持固定,注入位于被自动取入的辅助代码。
- 把合法、无标识冲突的语义保持变换及可逆组合抽象为 Cayley graph;生成任务在可用时以输出序列的长度归一化 log-likelihood 表示 confidence,而不需要模型参数梯度。
- GCGS 先评估一组单步变换,再按 confidence 启发式贪心组合,复用已测评分并跳过冲突,直到验证发现失败或达到查询预算;与只做浅层随机搜索的 baseline 比较搜索贡献。
- 受控实验给 HumanEval+/MBPP+ 目标题配三个其他已解题作为上下文,以功能测试定义 bug injection;CWEval/Python 要求仍过全部功能测试但失败安全测试,区分一般错误和安全缺陷。
- 报告从原正确输出变为错误的 ASR、查询成本和变换自然度。GPT-4.1 可提供 log probabilities 用 GCGS,Claude 无此接口只测浅层搜索;另复现 Copilot 跨文件上下文案例,作者说明该具体漏洞已向供应商披露并修复。
Sources & Reading Scope
阅读依据:官方 PDF 正文。核读页码按 PDF 页序计数,可能与 proceedings 页码不同。
p. 1 · p. 3 · p. 4 · p. 5 · p. 6 · p. 7
核读章节:Cross-Origin Context Poisoning (XOXO) Attack · Threat Model · End-to-End Attack Demonstration · Automating XOXO: Greedy Cayley Graph Search · Space of Transformations · Tree Traversal with Monotonicity in Model Confidence · Evaluation Setup
已核读攻击权限、confidence 接口要求和两类测试判据,仅概括研究设计。主大规模实验为控制的 context-augmented completion,不直接代表所有 IDE 实际发生率;Copilot 版本结论限于作者所测版本。