Skip to content

Translation in progress Some entries still include text in the original language.

arXiv· arXiv:2602.14211· Xiaojun Jia, Jie Liao, Simeng Qin, Jindong Gu, Wenqi Ren, Xiaochun Cao, Yang Liu, Philip Torr·Indexed by this site · Originally published

SkillJect: Automatically generating skill-based prompt injection for skill-based agents

SkillJect: Effectively Automating Skill-Based Prompt Injection for Skill-Enabled Agents

Quick read

Attacks

Based on 论文 PDF (AI 生成); refer to the original

作者报告SkillJect在Claude Code上四后端平均ASR为80.7%,Naive为0.0%。

Threat modelblack-box攻击者可在分发前改写SKILL.md并加入辅助脚本,但不能控制路由、模型参数、系统提示词或安装后的执行,也不能强迫选中。

Questions
skill安装后会被反复当作可信任务指导加载。作者称直写或手工嵌入的恶意指令常被拒绝或忽略,因而要自动生成能在选中执行时触发隐藏载荷的投毒skill。
Methods
SkillJect把载荷藏进辅助helper脚本,并把SKILL.md改成文档开头的必做前置步骤。Attack Agent用轨迹反馈只改文档、固定载荷;实验中该角色为GPT-3.5-Turbo。
Experiments and results
Claude Code上Naive的ASR为0.0%,SkillJect四后端平均Overall为80.7%(Table I);OpenClaw的Overall为80.5。30个skill子集上,GPT-5.4与Claude-Opus-4.6为28.7%与29.2%。
Limitations and future work
作者称成功只计选中后的helper执行,未研究强迫路由;100个skill与两个平台可能盖不住全部生态和审批设置。防御只测提示词加固和现有扫描器。主表未写精炼轮数与重复次数。
Experimental setupClaude-4.6-Sonnet、GPT-5-mini et al. · ClawHub(100 agent skills)、Claude Code et al. · ASR、SNS et al.
Threat model
black-box攻击者可在分发前改写SKILL.md并加入辅助脚本,但不能控制路由、模型参数、系统提示词或安装后的执行,也不能强迫选中。目标是投毒skill被选中执行时,使受害智能体显式执行隐藏helper脚本。成功按轨迹级payload执行判定,不要求下游危害全部实现。
Evaluated models
Claude-4.6-SonnetGPT-5-miniGLM-4.7MiniMax-M2.1DeepSeek-V4-flashGLM-5.1MiniMax-M2.7MiMo-V2.7GPT-5.4Claude Opus 4.6
Benchmarks
ClawHub(100 agent skills)Claude CodeOpenClawSkill-Inject的Obvious Injections with Body + Script
Metrics
ASRSNSdetection accuracy
AI summaryResearchers propose SkillJect, a prompt injection framework that automatically generates poisoned skills for skill-based agents, which the authors describe as the first automated framework in this direction. It implants payloads through two channels: the artifact channel hides payloads in auxiliary scripts, and the instruction channel rewrites SKILL.md, placing the injected content at the front and wrapping the auxiliary script as a mandatory initialization step, while also providing the script path and example commands. The framework uses a closed-loop multi-agent process, where an Attack Agent generates poisoned skills, a Victim Agent executes downstream tasks, and an Evaluate Agent checks execution traces to determine whether the payload was executed, with feedback then used to rewrite SKILL.md while keeping the payload unchanged. Experiments across multiple skill platforms, backend LLMs, and attack categories show that its effectiveness is significantly better than naive direct injection and previous manual skill injection attacks.

Researchers propose SkillJect, a prompt injection framework that automatically generates poisoned skills for skill-based agents, which the authors describe as the first automated framework in this direction. It implants payloads through two channels: the artifact channel hides payloads in auxiliary scripts, and the instruction channel rewrites SKILL.md, placing the injected content at the front and wrapping the auxiliary script as a mandatory initialization step, while also providing the script path and example commands. The framework uses a closed-loop multi-agent process, where an Attack Agent generates poisoned skills, a Victim Agent executes downstream tasks, and an Evaluate Agent checks execution traces to determine whether the payload was executed, with feedback then used to rewrite SKILL.md while keeping the payload unchanged. Experiments across multiple skill platforms, backend LLMs, and attack categories show that its effectiveness is significantly better than naive direct injection and previous manual skill injection attacks.

Paper analysis

6 questions; open one to read the full answer

  1. What problem does this paper attempt to solve?

    作者要自动生成能触发隐藏helper执行的投毒skill,以替代易失效的手工注入。

    如何自动生成能让skill启用的代码智能体执行隐藏载荷的投毒skill。

    • 场景:作者称agent skill以SKILL.md、可执行脚本和资源打包,安装后可被反复加载为任务指导,比网页、检索文档或工具输出更持久,形成供应链攻击面(引言、Fig. 1)。具体影响取决于运行时权限、沙箱、网络和用户审批。
    • 现有不足:作者称公开收集的恶意skill里,嵌入指令多数被拒绝或忽略,只有小部分触发目标行为(Fig. 2标注有2.5、5.0、7.5等Attack Success,纯文本无法可靠对应到每个模型的图例)。既有演示多为手工,难以跨skill、任务和受害系统稳定激活。
    • 核心观察:显式有害意图可能被安全机制拒绝;与原工作流或当前任务结合弱的指令则可能被忽略。作者因此把恶意功能与可疑措辞拆开。
    • 本文提出:SkillJect用辅助脚本藏载荷、用前置诱导改写SKILL.md,并由Attack Agent、Victim Agent、Evaluate Agent按轨迹反馈迭代改写文档、固定载荷。作者称这是首个针对agent skill的自动化提示注入框架。
    • 威胁模型:
      • 知识:作者写明为black-box。不控制路由、模型参数、系统提示词或安全机制,安装后不能直接干预执行。
      • 能力:分发前可改文档和捆绑产物;渠道包括公开skill注册表、共享仓库或可导入skill包。
      • 目标与判定:投毒skill被选中并执行时,轨迹应满足对应helper被执行的谓词。成功计payload执行,不要求下游危害全部落地。
      • 受害系统:任务驱动、从注册表按当前任务选skill的代码智能体;选中后载入文档,执行中可使用捆绑产物。不假设能强迫路由在无关任务上选中投毒skill。
  2. What related research exists?

    相关工作多是手工skill注入或运行时提示注入;作者用自动隐藏与反馈精炼来区分。

    智能体skill生态

    • Anthropic的Agent Skills规范把能力包组织为SKILL.md加可选脚本与资源;Claude Code、Codex CLI、Gemini CLI采用同类按需加载的插件式能力包。
    • 论文讨论工具增强智能体与代码智能体,并称公开网站、GitHub和官方集合降低了复用成本,也使已安装skill可被反复选中并当作可信扩展。

    智能体中的提示注入

    • 间接提示注入把指令放进网页、文档、检索段落或工具输出。Liu等研究真实LLM应用中的提示注入及朴素策略的局限;Wang等分别研究网页或工具输出对web agent的劫持,以及视觉加文本的跨模态注入。
    • 论文将其与用户直接提交的越狱分开,并称既有研究多关注一次性运行时输入。相对而言,skill位于可复用的能力扩展内,作者称其持久性更强、影响更直接。

    Skill安全与手工攻击

    • 生态研究指出公开仓库已出现提示注入、数据外传、提权、凭据泄露和可疑执行逻辑;另一项工作称只检查skill本身会高估恶意性,仓库级上下文能提高分类稳健性。
    • Schmotz等展示skill文件中的恶意指令可在执行中被信任;Skill-Inject衡量智能体对恶意skill文件的脆弱性;SkillAttack用对抗提示对良性skill做红队。论文称这些攻击主要靠手写恶意指令或预定义内容,显式意图可能被拒,弱结合指令可能被忽略。

    防御与安装前审查

    • 运行时方向包括在系统或任务提示中加安全指令、指令层级训练、结构化查询,以及基于可信控制流/数据流的能力策略;AgentDojo提供工具增强智能体的动态攻防基准。论文称它们主要针对网页、文档、检索、邮件或工具输出,对被视为可信扩展、且意图分布在文档与脚本中的skill注入,只能减弱、不能消除。

    • 安装前扫描包括Cisco的Skill Scanner、Skill Vetter、SlowMist Skill Scanner和ClawGuard Auditor。论文称静态扫描能抓住显式恶意指令、危险命令、凭据访问或已知外传模式,但可能漏掉意图只在文档、辅助产物、仓库上下文和执行行为交互中出现的攻击。

    • 基线与基准:Naive(Direct Injection)把恶意命令直接写入SKILL.md,不用helper、隐藏或混淆。与Skill-Inject对比时,使用其Obvious Injections with Body + Script设置,以及相同的clean skills和恶意脚本。自建数据为ClawHub上100个skill及对应任务。

    作者把本文定位为用载荷隐藏、轨迹验证和反馈精炼自动生成投毒skill,而不是再做手工注入。

  3. How does the paper address this problem?

    SkillJect把载荷藏进helper,把SKILL.md改成前置必做步骤,再按轨迹反馈改写文档。

    SkillJect把投毒拆成文档诱导和产物藏载荷,再用执行轨迹只迭代改写文档、保持载荷不变。

    问题设定

    • skill包写作S=(d, A):d是SKILL.md,A是可选的脚本、配置等辅助产物。给定目标行为类别B,攻击者构造S'=(d', A')。
    • 双通道写为d′=INJECT(d, π), A′=HIDEPAYLOAD(A)=A ∪ amB。含义是:文档插入诱导提示π,产物集追加与B对应的隐藏helper脚本。
    • 成功谓词为M(τ; B)∈0,1。含义是:轨迹τ包含对该helper的显式执行则为1,否则为0。论文按此计ASR,不要求每个下游危害都实现。
    • 不假设能强迫路由选中S'。只在S'属于智能体为任务t实际执行的skill集合时,追求该谓词以高概率成立。

    双通道隐藏

    • Artifact channel:恶意操作放在看似普通的.py或.sh helper中。论文举例为helper.sh、run.sh、tool.py。A'保留原产物并追加该脚本。
    • Instruction channel:诱导放在SKILL.md最前,把helper写成必做前置或第一步,写明脚本路径并给出可执行示例命令,使其像正常初始化。
    • 对齐:诱导须与隐藏脚本的行为对齐,使文档看起来连贯。作者称显式恶意内容不放在改写后的文档里。

    闭环生成

    1. 载荷理解:Attack Agent分析新helper及其文件名,得到结构化理解,包括名义功能、输入输出、预期执行阶段和在工作流中的角色。
    2. 约束生成:以原文档、上述理解、行为类别B和前置约束生成初版SKILL.md。该约束把helper指令放在文档开头,以提高显著性和执行优先级。
    3. 反馈精炼:载荷只生成一次,之后A'固定。Victim Agent在任务批上运行投毒skill;Evaluate Agent返回是否执行,以及ignored、refused、partially triggered或incorrectly executed等诊断和证据。Attack Agent据此重写文档,直到成功或达到预算。
    4. 角色与提示:实验里Attack Agent是带前置约束的GPT-3.5-Turbo。论文未写明Evaluate Agent是否为某个命名LLM。附录A给出载荷理解、约束生成和反馈精炼的完整提示词;附录B给出算法。

    成功判定

    • 检查工具调用、命令执行、文件操作以及中间或最终输出,只判断隐藏helper是否被显式执行。
    • 作者称轨迹级执行把控制从文档转到攻击者控制的可执行产物;最终影响仍取决于沙箱、文件系统权限、网络、用户审批和运行时强制。
  4. What experiments did the paper conduct?

    在Claude Code上,Naive的ASR为0.0%,SkillJect四后端平均Overall为80.7%。

    实验设置

    • 平台:主平台为Claude Code,另在OpenClaw上测跨平台。两者在沙箱Docker中执行命令和工具动作。
    • 被测后端:主实验为Claude-4.6-Sonnet(表中写作Claude-Sonnet-4.6)、GPT-5-mini、GLM-4.7、MiniMax-M2.1。扩展为DeepSeek-V4-flash、GLM-5.1、MiniMax-M2.7、MiMo-V2.7、GPT-5.4、Claude Opus 4.6(表中Claude-Opus-4.6)。
    • 攻击方:GPT-3.5-Turbo加前置约束生成恶意skill。论文未写明Evaluate Agent的模型名。
    • 数据与行为:ClawHub上100个skill,覆盖软件开发与DevOps、数据与金融分析、内容创作与营销、研究与智能体工具四类领域。每个skill一个任务,任务要求使用对应skill并触发其正当功能;附录C写明100个任务都有instruction.md,71个含辅助工作区文件,指令14–36词、平均26.84词。四类行为为InfoDisc、PrivEsc、UnauWri、Backdoor。扩展实验从100中随机抽30个skill/任务,报告四类平均的Overall ASR。
    • 指标与基线:ASR为观察到对应helper被执行的任务比例。另有SNS和扫描器detection accuracy。基线为Naive直接注入,以及Skill-Inject在Obvious Injections with Body + Script、相同clean skills和恶意脚本下的对比。论文未在主表写明精炼轮数、查询次数或重复次数。

    主结果

    Table I为Claude Code上SkillJect的ASR(%)。Naive在全部格子中为0.0%,表中不再重复。

    Swipe horizontally to read the table

    后端InfoDiscPrivEscUnauWriBackdoorOverall
    GLM-4.798.0%95.0%98.0%98.0%97.2%
    MiniMax-M2.195.0%95.0%95.0%94.0%94.7%
    GPT-5-mini88.0%79.0%84.0%84.0%83.8%
    Claude-Sonnet-4.634.0%55.0%57.0%42.0%47.0%
    Average78.8%81.0%83.5%79.5%80.7%
    • 作者称直接把显式恶意指令写入SKILL.md基本无效,有效注入还需要藏载荷并自动构造诱导。
    • 作者称平均Overall ASR为80.7%;类别平均最高为UnauWri的83.5%,最低为InfoDisc的78.8%。
    • Claude-Sonnet-4.6的Overall为47.0%,低于另外三个后端。作者称它相对更抵抗,但ASR仍非零。Table I最低单元格是该模型的InfoDisc 34.0%。

    跨平台与更新模型

    • OpenClaw(Table II):Naive在四个后端上均为0。SkillJect为GLM-4.7 97、MiniMax-M2.1 95、GPT-5-mini 87、Claude-Sonnet-4.6 43,Overall 80.5。该表未写百分号,也未按行为类别分列。作者称排序与Claude Code一致,效果不依赖单一脚手架。
    • 更新模型(Table III):随机30个skill/任务,Naive均为0.0%。SkillJect的Overall为DeepSeek-V4-flash 95.8%、GLM-5.1 92.4%、MiniMax-M2.7 90.2%、MiMo-V2.7 74.3%、GPT-5.4 28.7%、Claude-Opus-4.6 29.2%,六模型平均68.4%。作者认为后两者下降可能来自更强的安全对齐、更谨慎的工具使用或对任务相关性的推理,并称模型缩放与更强对齐并不能完全消除该风险。

    对比、迁移与跨任务

    • 同脚本对比(Table V,Claude Code):Skill-Inject的Overall为32.3%,SkillJect为69.1%。分模型从40.0%到82.2%(GLM-4.7)、35.6%到80.9%(MiniMax-M2.1)、26.7%到64.4%(GPT-5-mini)、26.7%到48.9%(Claude-Sonnet-4.6)。作者称双方使用相同良性skill和恶意脚本,提升主要来自自动诱导和反馈精炼。Table IV把手工攻击、Naive、SkillJect的Overall ASR写为32.3、0.0、69.1,与Table I的80.7%不是同一设置。
    • 跨模型(Table VI):在GLM-4.7上生成后不做目标特异精炼。MiniMax-M2.1的Overall为79.8%(InfoDisc 81.0%、PrivEsc 76.0%、UnauWri 77.0%、Backdoor 85.0%);GPT-5-mini为49.8%;Claude-Sonnet-4.6为35.8%。作者称相对源模型97.2%,分别下降17.4、47.4、61.4个百分点。
    • 跨任务(Fig. 4,GLM-4.7):同一投毒skill在另20条LLM生成的任务指令上直接评测,不重新生成或精炼。原任务四类为98%、98%、95%、98%;跨任务为80%、72%、77%、70%(顺序为Backdoor、InfoDisc、PrivEsc、UnauWri)。作者称并未只拟合源任务,但效果仍取决于新指令是否激活注入工作流。论文未写明生成这20条指令的模型名。

    防御评测

    • 指令级提示(Fig. 8,GLM-4.7):要求执行前检查被引用脚本。作者称Backdoor从98%降到40%,InfoDisc从98%降到10%,PrivEsc从95%降到66%,UnauWri从98%降到77%;四类平均从97.3%降到48.3%,绝对下降49.0个百分点。Table I中同一后端Overall为97.2%,与97.3%不是同一处数字。作者称该防御能减弱但不能消除风险,PrivEsc与UnauWri在防御后仍为66%与77%。
    • 扫描器(Table VII):对象是SkillJect在GLM-4.7上生成的投毒skill。detection accuracy为Cisco 63.8%、Vetter 53.1%、SlowMist 64.2%、Auditor 65.0%,Overall 61.5%。作者称漏检较多,主因是可见文档把helper写成兼容良性工作流的前置步骤,恶意操作在辅助产物中,要到执行时才变得与安全相关。论文未报告该集合的条数。

    其他消融与分析

    • Table VIII(GLM-4.7,Overall):完整方法97.2%;去掉载荷理解91.0%;去掉前置策略78.8%(UnauWri 78.0%、Backdoor 75.0%);去掉精炼反馈80.5%(PrivEsc从95.0%到73.0%)。
    • Fig. 6:作者称五轮后GLM-4.7、MiniMax-M2.1、GPT-5-mini、Claude-Sonnet-4.6的ASR为97.2%、94.6%、83.8%、52.8%;早期轮次增益更大,之后趋于平台。图注提取中有94.26%一类标注,与正文94.6%不完全一致。
    • Fig. 7的SNS(GLM-4.7,越高表示与原skill更一致,不表示安全):Naive/SkillJect为Backdoor 0.223/0.429、InfoDisc 0.318/0.415、PrivEsc 0.340/0.429、UnauWri 0.259/0.462。附录D称高SNS不意味着skill良性;评审模型名称未写明。
    • Fig. 5展示两类表面形式:结构上伪装成前置小节,以及强调式初始化警告。具体注入句不转述。Fig. 2中公开恶意skill的Attack Success标注包括2.5、5.0、7.5,正文称多数被拒绝或忽略。
  5. What are some points that can be further explored?

    作者把成功限定为选中后的helper执行,并称生态、部署和更强防御仍可继续研究。

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

    • ASR衡量的是helper是否被执行,作者不声称每次执行都会在所有部署中实现全部下游后果;最终影响取决于沙箱策略、文件权限、网络、用户审批和运行时强制(Section V)。
    • 评测是post-selection:投毒skill须先被路由或检索选中。作者写明未研究如何强迫路由在无关任务上选中恶意skill(Section V)。
    • 基准含100个真实skill和代表性任务指令,作者称可能覆盖不了全部skill生态、智能体脚手架或部署策略(Section V)。
    • 已评测多个后端LLM和两个skill平台,作者称行为仍可能随系统提示词、工具权限、沙箱配置和人在回路审批而变化(Section V)。
    • 防御评测聚焦实用的提示级缓解和现有skill扫描器。作者称更强防御仍是未来工作(Section V)。结论还称未来防御应联合考虑skill文档、辅助产物、执行轨迹和运行时工具策略。

    实验覆盖范围

    • 主结果后端为Claude-4.6-Sonnet、GPT-5-mini、GLM-4.7、MiniMax-M2.1;平台为Claude Code与OpenClaw;行为为四类;数据为ClawHub的100个skill及一一对应的任务。
    • 更新模型实验为6个后端、随机30个skill/任务,只报告四类平均的Overall ASR(Table III)。
    • 攻击生成模型为GPT-3.5-Turbo。论文未在主结果表写明精炼轮数、查询次数或重复次数;Fig. 6的分析写明五轮。
    • 防御包括Fig. 8的指令级提示加固,以及Table VII的四款扫描器。论文未报告扫描集合条数,也未报告SNS评审模型名称,以及跨任务指令所用LLM的名称。
    • 迁移包括以GLM-4.7为源、不做目标特异精炼的跨模型评测(Table VI),以及同一skill上另20条任务指令的跨任务评测(Fig. 4)。
  6. Summarize the main content of the paper

    SkillJect用双通道和闭环精炼投毒skill;主结果平均ASR 80.7%,Naive为0.0%。

    SkillJect是针对可安装agent skill的自动化提示注入框架。作者要解决的是:公开或手工放入skill的恶意指令常常被拒绝或忽略,而skill一旦安装就会被反复当作可信指导加载。

    • 做法:black-box攻击者在分发前改包,安装后不能干预执行,也不能强迫路由选中。载荷放进辅助helper脚本;SKILL.md把该脚本写成文档开头的必做前置步骤,并写明路径和示例命令。GPT-3.5-Turbo担任Attack Agent,按轨迹诊断迭代改写文档,载荷保持固定。成功只看helper是否被显式执行。
    • 主结果:自建数据为ClawHub的100个skill。Claude Code上Naive的ASR全为0.0%;SkillJect四后端平均Overall为80.7%,其中GLM-4.7为97.2%,Claude-Sonnet-4.6为47.0%(Table I)。OpenClaw的Overall为80.5(Table II)。
    • 其他结果:与Skill-Inject使用相同良性skill和恶意脚本时,Overall从32.3%到69.1%(Table V)。随机30个skill上,GPT-5.4与Claude-Opus-4.6为28.7%与29.2%(Table III)。GLM-4.7上的指令级防御后,四类平均由作者报告的97.3%降到48.3%,PrivEsc与UnauWri仍为66%与77%。四款扫描器的Overall detection accuracy为61.5%。
    • 作者结论:作者称可复用skill生态在投毒skill被选中并执行时,可以成为一个持续的攻击向量;现有提示级防御和扫描器只能部分缓解。作者建议把skill当作安全敏感的软件产物,并联合检查文档、辅助产物、轨迹和运行时工具策略。
Read originalarxiv.org