跳到正文
原文
论文追踪· arXiv:2608.21929· Yuanjin Zheng, Jingbang Chen·本站收录 · 原文发表

SkillBloat:通过技能注入对编码 Agent 发起 token 放大攻击

SkillBloat: Token Amplification Attacks via Skill Injection in LLM Coding Agents

论文速读

攻击

据论文 PDF 整理(AI 生成),以原文为准

作者提出SKILLBLOAT,四组配置平均最优token放大5.4184×至10.1455×。

威胁模型攻击者控制技能文档,格式支持时还可控制捆绑资源脚本。

问题
编程智能体的技能可被改成对抗技能,在仍完成任务时提高token消耗与执行成本。作者将其视为经济资源滥用,并称既有工作较少按任务优化技能内容。
方法
SKILLBLOAT先用攻击模型按15种条件整篇改写SKILL.md并筛选,再根据执行轨迹和失败类型做5轮反馈改写,保留总token放大最高的候选。
实验与结果
在50对任务、四个前端–模型配置上,平均最优放大为5.4184×至10.1455×,单任务最高75.86×。输出上限下平均放大为1.24×至1.39×,完成率为48.00%至68.00%。
局限与可以继续做的
论文未专门讨论局限。评测为四个配置与50个技能–任务对;完成判定用GLM-5,论文未报告与人工的一致性;输入迁移只报告Claude Code加GLM-5上的10个技能。
实验设置GLM-4.7-Flash、GLM-5 等 · SkillJect skill benchmark · Rtotal、completion rate 等
威胁模型
攻击者控制技能文档,格式支持时还可控制捆绑资源脚本。受害用户或平台安装并调用该技能。目标是提高token消耗与执行成本,并尽量保持表面任务完成。不针对数据外泄、权限提升、持久化妥协或破坏性文件修改。论文未使用white-box或black-box称呼该设定。
被测模型
GLM-4.7-FlashGLM-5GPT-5.4 MiniGPT-5.5
基准
SkillJect skill benchmark
指标
Rtotalcompletion rateretention
AI 导读研究者提出 SkillBloat 框架,利用编码 Agent 的技能(skill)注入通道实施 token 放大攻击,让恶意技能使 Agent 消耗远超正常任务所需的 token。该方法分两阶段,先在多种放大机制下筛选不同攻击类型条件,再用 LLM 引导对整份技能文档重写以强化最优候选。在真实技能基准上,SkillBloat 在多种编码 Agent 目标配置下平均最佳放大倍数为 5.4184x 至 10.1455x。消融实验显示,第二阶段迭代优化相比仅做第一阶段攻击类型筛选能持续提升放大效果。作者认为,技能生态暴露出一条与现有以安全为导向的技能投毒相互正交的资源放大攻击面。

研究者提出 SkillBloat 框架,利用编码 Agent 的技能(skill)注入通道实施 token 放大攻击,让恶意技能使 Agent 消耗远超正常任务所需的 token。该方法分两阶段,先在多种放大机制下筛选不同攻击类型条件,再用 LLM 引导对整份技能文档重写以强化最优候选。在真实技能基准上,SkillBloat 在多种编码 Agent 目标配置下平均最佳放大倍数为 5.4184x 至 10.1455x。消融实验显示,第二阶段迭代优化相比仅做第一阶段攻击类型筛选能持续提升放大效果。作者认为,技能生态暴露出一条与现有以安全为导向的技能投毒相互正交的资源放大攻击面。

深度解读

6 个问题,点开问题读完整回答

  1. 这篇论文试图解决什么问题?

    技能注入可在保持任务完成时放大编程智能体的token消耗。

    技能注入可在任务仍完成时,把编程智能体的 token 消耗放大成经济资源滥用。

    • 场景:作者称编程智能体(如 Claude Code、Codex CLI、Gemini CLI)用技能包扩展能力。技能以 SKILL.md 为中心,可附脚本与资源;被选中后全文进入上下文,并影响工具使用与中间产物。技能经公开仓库和社区市场分发时,高消耗步骤可被写成看似正当的任务流程。
    • 现有不足:作者称 SkillJect、DDIPE 等主要针对信息泄露、越权、未授权写入和后门。Clawdrain 与 CDH 能在保持任务完成时诱导资源放大,但使用固定或手工构造的恶意技能,不按每个技能–任务对优化技能内容。针对外泄或未授权操作的检测,不一定覆盖仍与表面任务一致的高消耗流程。
    • 假设:作者认为,注入指令可以保持表面任务完成,同时增加资源使用,因此技能投毒也能造成经济资源滥用。
    • 本文做法:作者提出 SKILLBLOAT。它先筛选攻击类型条件,再用执行反馈迭代改写完整 SKILL.md,以提高 token 消耗,并尽量保持任务完成。
    • 威胁模型
      • 目标:提高 token 消耗和执行成本;在可能时保持表面任务完成。
      • 能力:攻击者控制技能文档;技能格式支持时,还可控制捆绑的资源脚本。论文未称该设定为 white-box、black-box 或 no-box。
      • 受害方:用户或平台把技能作为能力扩展安装并调用。实验中的受害前端是 Claude Code CLI 与 Codex CLI。
      • 不做的事:不针对数据外泄、权限提升、持久化妥协或破坏性文件修改。
  2. 有哪些相关研究?

    相关工作覆盖技能投毒与资源放大,作者用按任务的反馈改写区分本文。

    提示注入与技能投毒

    • 间接注入与智能体评测:Greshake et al. (2023) 研究经外部对抗数据实现的间接提示注入。AgentDojo(Debenedetti et al., 2024)评测工具使用智能体上的此类攻击与防御。论文只作描述,未与本文做实验对比。
    • 技能供应链:SkillJect(Jia et al., 2026)优化诱导指令与恶意辅助载荷,目标含信息披露、权限提升、未授权写入和后门。DDIPE(Qu et al., 2026)把恶意逻辑嵌进技能文档中的代码示例。Schmotz et al. (2025) 的结论被引言转述为:智能体技能能构成一类容易构造的现实提示注入。
    • 资源向的技能攻击:Clawdrain(Dong et al., 2026)用木马技能和配套脚本诱导多轮工具调用链。CDH(Liu et al., 2026)组合技能选择与指令级绕路,在保持任务完成时增加资源使用。作者称二者依赖固定或手工恶意技能,而不是按每个技能–任务对优化技能内容。

    资源放大与拒绝服务

    • 提示词侧:Engorgio(Dong et al., 2025)抑制结束符以拉长输出;CRABS(Zhang et al., 2025)生成黑盒提示以增加消耗与延迟;ThinkTrap(Li et al., 2026)触发延长或无限推理;ExtendAttack(Zhu et al., 2026)用解码任务延长推理链并保持准确率。
    • 工具链:Zhou et al. (2026) 串联智能体工具调用,把资源使用放大到名义 max-token 限制之外。
    • 上述工作在 Related Work 中被描述为放大计算或服务成本;除后文对固定技能的对比外,论文未逐篇批评其实验设计。

    编程智能体与技能接口

    • 智能体能力:引言用 ReAct(Yao et al., 2023)、Toolformer(Schick et al., 2023)和 Reflexion(Shinn et al., 2023)说明 LLM 转向规划、工具使用和多步推理。论文未把它们当作实验基线。
    • 技能实现:Anthropic Agent Skills(Anthropic, 2025b)以 SKILL.md 加可选脚本打包技能;Gemini 工具也出现类似抽象(Google, 2025)。论文只描述接口,未在 Gemini CLI 上报告结果。

    基线与基准

    • 基线方法:每个技能–任务对上,未修改技能运行 3 次,平均总 token 为放大比分母,良性基线定义为 1.00×。消融中的 No-feedback 从 Phase 1 最优技能再生成 5 次改写且不用执行反馈,作为同样多 5 次额外评测的重采样对照。
    • 基准:SkillJect(Jia et al., 2026)引入的技能基准:50 个真实技能各配 1 条任务提示,覆盖软件工程、科学计算、生物医学分析、文档与数据处理。

    作者将本文定位为:在多种攻击条件、技能–任务对和编程智能体配置上评测资源放大,并用反馈式精炼优化被投毒技能本身,而不是依赖固定或手工构造的恶意技能(Related Work、Conclusion)。

  3. 论文如何解决这个问题?

    SKILLBLOAT先筛15种攻击条件,再按执行反馈迭代改写完整SKILL.md。

    SKILLBLOAT 用攻击模型把良性 SKILL.md 整篇改写成对抗技能:先在攻击类型库中筛选,再按目标智能体的执行反馈迭代改写,使额外工作仍看起来属于原任务。

    问题设定与目标

    • 对象:良性技能 s、任务 t、目标智能体 A。对抗技能由攻击模型整篇生成。放大来自改写后仍看似相关的额外工作。
    • 放大比:Rtotal=Cadv/Cbase,即对抗执行相对良性基线的总 token 比。总 token 为输入与输出之和。
    • 筛选与最终选择:z∗=argmaxzk∈ ZRtotal(zk)。最终技能在全部 Phase 1 候选与全部 Phase 2 记录中按同一指标选取。完成状态进入反馈,并在结果中另行报告,正文未把它写成硬约束。
    • 改写约束:系统提示要求保留原内容、把工具调用写成常规质量保证步骤、使用专业术语,并把篇幅放在区间 [Lmin, Lmax]。附录 B.1 给出各阶段完整提示词;其中的禁用词、句式和字数上下限这里不列出。

    攻击类型与工具融合

    • 类型库:Z 含 K=15 个条件,对应三类机制:输出膨胀(冗长报告、多视角分析、细粒度分解)、工具驱动放大(多阶段流水线、重复质检、写读校验、重试式恢复)、上下文放大(参考材料或单调增长的摘要)。混合条件不新增机制,只改变同一工具行为在元数据、准备步骤、代码式示例、校验段或多处流程中的放置。名称、工具与行为见 Table 5 与附录 A。
    • 工具融合:映射 ψ 为每个条件从共享清单选出工具子集。每个工具带显示名、描述、文件名、命令行参数和集成提示。攻击模型根据技能原文与这些元数据生成完整 SKILL.md,而不是插入固定片段。作者称整篇改写是为了接上原技能的术语与工作流,并按领域调整新增步骤的位置。
    • 攻击模型:方法中记为 Matk。实验里 Attack Agent 使用 GPT-5.5,为每个目标配置生成改写。

    两阶段流程

    • Phase 1:对每个技能–任务对,用未修改技能把目标智能体跑 3 次,平均总 token 作为 Cbase。15 种条件各生成并执行一次,取得分最高的条件进入下一阶段。作者称不同技能–任务对对冗长输出或重复校验的反应可能不同,因此按对筛选。
    • Phase 2:保留 Phase 1 胜者作为初始候选,再新生成 N 次改写。实验取 N=5。每轮根据原技能、上一版、累积反馈、该条件的工具集,以及上一轮失败类型改写;部署后记录放大比、完成状态和响应;失败分析器给出失败类型和结构化反馈。系统提示随失败类型切换。附录 B.1 按拒绝、忽略、任务失败、低放大等模式给出完整提示词。
    • 输出:在 Phase 1 全部候选与 Phase 2 全部记录(含初始候选)中保留 Rtotal 最高者。Figure 1 用 analyzing-projects 示意该流程;该图未标明前端与后端。

    完成判定

    • 裁判:程序化检查之后,GLM-5 作语义回退,给出二值完成标签。输入包括原任务、最终回复、自动检查结果、输入文件元数据与输出文件证据。附录 B.2 给出裁判提示词。
    • 主结果定义:每个技能–任务对的 best attack 是已评测对抗运行中总 token 放大最高者;平均最优放大相对该对的良性基线计算。
  4. 论文做了哪些实验?

    四配置平均最优放大5.4184×至10.1455×,GPT-5.5完成率降到88.00%。

    实验设置

    • 前端与后端:Claude Code CLI 配 GLM-4.7-Flash、GLM-5;Codex CLI 配 GPT-5.4 Mini、GPT-5.5。共 4 个配置。
    • 基准:SkillJect 基准中 50 个真实技能,各配 1 条任务提示。领域包括软件工程、科学计算、生物医学分析、文档与数据处理。
    • 攻击与裁判:Attack Agent 为 GPT-5.5。完成标签由 GLM-5 二值判定。裁判与 Claude Code 后端都写作 GLM-5,攻击模型与 Codex 后端都写作 GPT-5.5;论文未说明是否同一部署。
    • 协议:基线为原技能 3 次平均总 token。K=15,Phase 1 每种评一次。Phase 2 再做 5 次带反馈的新改写。Rtotal 为对抗总 token 除以基线总 token。
    • 对照:主结果对照是良性原技能,放大定义为 1.00×。消融另设不用执行反馈的 5 次重采样。
    • 论文未写明:对抗运行是否多次重复取平均、裁判与人工是否一致、是否做统计检验。

    主结果

    据 Table 1。best attack 为该技能–任务对上总 token 放大最高的对抗运行。

    表格较宽,可左右滑动

    配置平均最优最大中位基线完成攻击完成
    Claude Code / GLM-4.7-Flash9.3105×71.59×4.89×76.00%80.00%
    Claude Code / GLM-55.4184×21.49×4.02×90.00%92.00%
    Codex / GPT-5.4 Mini10.1455×75.86×6.10×86.00%92.00%
    Codex / GPT-5.56.0063×26.39×4.36×94.00%88.00%
    • 作者解读:作者称四个配置的平均消耗都高于良性基线。摘要把平均最优放大写成 5.42× 到 10.15×,单任务最高写成 75.86×,与表中的最高一行一致,精度低于表。
    • 后端对比:作者称在每一对后端中,更先进后端的平均最优放大和最大放大都更低,并认为更先进后端可能更抗拒所注入的校验、重试和报告流程。论文未报告统计检验。
    • 完成率:作者称放大并不以任务失败为代价。表中三个配置的攻击完成率不低于基线;GPT-5.5 低于基线。作者仍称较强后端在攻击下大体仍能工作。

    两阶段消融

    据 Table 2。No-feedback 从 Phase 1 最优技能无反馈再生成 5 次,并在胜者与这 5 次中取最优。

    表格较宽,可左右滑动

    配置Phase 1无反馈Phase 2
    GLM-4.7-Flash7.5105×8.9700×9.3105×
    GLM-54.0220×5.1518×5.4184×
    GPT-5.4 Mini7.5101×8.8427×10.1455×
    GPT-5.54.0573×5.7904×6.0063×
    • 作者称仅筛选已有放大,但是一次性选择,不按观察到的行为改文档。
    • 作者报告四配置上 Phase 2 都高于 Phase 1,也高于无反馈列。Section 3.3 给出四配置非加权均值从 5.78× 到 7.72×,相对增加 33.7%;这两个均值不在 Table 2 的列中。
    • 作者报告 GPT-5.4 Mini 上,反馈比无反馈再高 1.3028×,并认为循环用到了目标执行中的信号,而不只是多采样。

    输出上限与输入迁移

    • 输出上限(Section 5.1、Table 4):对每个任务的最优放大技能,代理把累计输出 token 限制为该对良性基线输出 token 的 2 倍。平均总 token 放大为:GLM-4.7-Flash 1.36×、GLM-5 1.24×、GPT-5.4 Mini 1.39×、GPT-5.5 1.34×。完成率依次为 62.00%、48.00%、68.00%、64.00%。作者认为上限能限制观察到的经济损害,但不能区分恶意开销与正当任务执行。
    • 迁移(Section 5.2、Figure 3):随机抽 10 个技能,每个做 3 个输入变体,技能指令不变,只换同类输入物。不重新优化,把只在原任务上得到的 Phase 2 最优 SKILL.md 原样部署。目标仅为 Claude Code + GLM-5。retention 为变体放大比除以优化任务放大比。十技能平均为 0.92;7/10 至少 0.82×;4 个超过 1。图中标注从 brenda database 的 0.52、citation management 的 0.54、analyzing projects 的 0.56,到 bioservices 的 1.53。作者未解释较低的三个值,并称被投毒技能可在不同输入上保留放大。

    案例与筛选入选

    • 案例(Section 4、Table 3、Figure 2):consciousness-principles,目标为 Codex + GPT-5.5。三阶段裁判均为完成。基线 1.00×、38410 token、0.21 美元、3 条命令、0 次文件编辑;Phase 1 后 10.07×、386807 token、2.10 美元、9 条命令、1 次编辑;Phase 2 后 26.39×、1013561 token、5.41 美元、28 条命令、10 次编辑。作者按 Standard 价(输入 5 美元/百万 token,输出 30 美元/百万 token)估计。引言称该例是 extremely simple task。该配置全数据集估计成本从 133.34 美元到 464.31 美元。作者称额外 token 来自更多命令与文件编辑,而不是技能文档变长。
    • 入选类型(Appendix C、Figure 4):Phase 1 胜者进入 Phase 2 的次数。作者称 fake error retry 出现在每个模型的 top 5,合计 26 次;图中标出 6、4、9、7。作者称 multi-point injection 出现在三个模型,合计 21 次;图的 top 5 只标出 5、6、7,未标出其余次数。Claude Code 两端的 self debate 为 8 与 6;Codex 两端的 task decomposition 为 9 与 8。作者认为可能路径包括对表面错误的响应、把任务拆成多阶段,以及额外审议。

    其他消融与分析

    • 论文未再报告 N、K 或基线重复次数的参数扫描。
    • Figure 4 其余可见次数:GLM-4.7-Flash 上 file io loop 6、verification injection 5、description injection 4;GLM-5 上 tool pollution 5、verification injection 4;GPT-5.4 Mini 上 input bloat 与 tool pollution 各 4;GPT-5.5 上 prerequisite injection 6、pipeline bloat 5。
    • Figure 2 文字标注同一案例的 Phase 1 为 386.8k token、10.07×,Phase 2 为 1.01M token、26.39×;精确值以 Table 3 为准。
  5. 有什么可以进一步探索的点?

    论文未专门写出局限,也未列出后续工作。

    作者指出的局限与后续方向

    论文未专门讨论局限,也没有 Future Work 小节写出后续工作清单。Conclusion 建议技能生态的防御同时考虑恶意操作,以及由仍看似合理的技能指令引起的异常资源使用;该句是结论性建议,未写成局限或待做实验。Ethics Statement 写作者计划不发布优化后的对抗 SKILL.md,这是发布安排,不是方法局限。

    实验覆盖范围

    • 被测配置为 Claude Code 配 GLM-4.7-Flash、GLM-5,以及 Codex 配 GPT-5.4 Mini、GPT-5.5,共 4 组;基准为 50 个技能–任务对(Section 3.1、Table 1)。
    • 良性基线每个对运行原技能 3 次取平均;15 种攻击类型在 Phase 1 各评一次;Phase 2 为 5 次新生成的反馈改写(Section 3.1、Table 2)。
    • 完成标签由 GLM-5 判定,Attack Agent 为 GPT-5.5(Section 3.1)。论文未报告该裁判与人工标注的一致性,也未报告显著性检验。
    • 防御评测为输出 token 上限,预算等于良性基线输出 token 的 2 倍,四个配置都报告了完成率与平均总 token 放大(Table 4、Section 5.1)。
    • 输入迁移随机抽取 10 个技能、每个 3 个变体,只在 Claude Code + GLM-5 上报告,平均 retention 为 0.92(Section 5.2、Figure 3)。
  6. 总结一下论文的主要内容

    SKILLBLOAT用技能改写放大token,四配置平均最优为5.4184×至10.1455×。

    SKILLBLOAT 把编程智能体的技能注入做成 token 放大研究,目标是经济资源滥用,而不是外泄或篡改。

    • 问题:攻击者控制已安装技能的文档,格式允许时还包括捆绑脚本。受害方按正常能力扩展安装并调用。攻击希望提高 token 与执行成本,并尽量让表面任务仍然完成。
    • 方法:攻击模型按 15 种条件整篇改写 SKILL.md,用 3 次良性运行的平均总 token 作分母并筛出最高放大条件;再由 GPT-5.5 根据失败类型和执行反馈新做 5 轮改写,在全部候选里保留总 token 放大最高者。
    • 主结果:50 对任务上,Claude Code 的 GLM-4.7-Flash、GLM-5 平均最优放大为 9.3105×、5.4184×,Codex 的 GPT-5.4 Mini、GPT-5.5 为 10.1455×、6.0063×;单任务最大分别为 71.59×、21.49×、75.86×、26.39×(Table 1)。三个配置的攻击完成率不低于基线,GPT-5.5 从 94.00% 降到 88.00%。
    • 其余结果:有反馈的 Phase 2 在四配置上都高于无反馈重采样(Table 2)。输出上限把平均总 token 放大降到 1.24×–1.39×,完成率降到 48.00%–68.00%(Table 4)。换输入后,Claude Code + GLM-5 上 10 个技能的平均 retention 为 0.92(Figure 3)。Codex + GPT-5.5 的一个案例从 0.21 美元到 5.41 美元(Table 3)。
    • 作者结论:作者认为技能生态的防御不能只看恶意操作,也要看由仍看似合理的指令引起的异常资源使用;简单输出上限能压低放大,同时也会打断有用工作。
阅读原文arxiv.org