BadTemplate: Training-Free Backdoor Attacks on Large Language Models via Chat Templates
BadTemplate: A Training-Free Backdoor Attack via Chat Template Against Large Language Models
BadTemplate改chat template植入后门;Llama-70B词级SMS上ASR为100.00%。
攻击者可发布含恶意chat template的tokenizer,或与模型参数一并放到第三方平台或直接给用户。
- chat template随tokenizer在供应链中分发。控制模板的人可在用户无感知时把字符串写入system prompt,从而做免训练后门。作者称低成本扩散可能带来经济损失和错误信息。
- BadTemplate不改参数,只在chat template的system角色拼入后门指令。词级以词、句级以句子为触发;含触发则输出预设标签。推理另加分类任务指令、每类4个示范,并用贪心解码。
- 在6个开源和3个闭源模型、5个分类集上与Clean及ICL-1/2/3Shot比较;闭源为system prompt模拟。多格ASR为100.00%,也有低于或贴近基线的格子。GPT-4o的检测TPR多为0.00%。
- 论文未专列方法局限。Discussion称HuggingFace检测未能识别恶意tokenizer,并呼吁平台与用户侧的新防御。实验包括五个分类集;闭源结果来自模拟插入,不是改tokenizer。
- Threat model
- 攻击者可发布含恶意chat template的tokenizer,或与模型参数一并放到第三方平台或直接给用户。不能改参数或训练数据,只能改tokenizer内模板。目标是输入含触发器时出现指定后门行为,良性输入尽量保持原任务表现,且不易被用户发现并能抵抗常见防御。
- Evaluated models
- Llama-3.1-8B-INSTDeepseek-7B-chatLlama-3.1-70B-INSTYi-1.5-Chat-34BMistral-Small-Instruct-2409Phi-3.5-mini-instructGemini-2.5-flashGPT-4o-miniDeepSeek-V3.2-Exp
- Benchmarks
- SST-2SMS SpamAGNewsDBPediaAmazon Product Reviews
- Metrics
- ACCASRTPR
The researchers propose BadTemplate, a training-free backdoor attack in which an attacker who controls the chat template can inject malicious instructions into the high-priority system prompt without the user's knowledge, causing the target large language model to exhibit persistent backdoor behavior. On 5 benchmark datasets, 6 open-source and 3 closed-source large language models, compared with 3 baselines, the method achieves up to 100% attack success rate and outperforms traditional prompt-based backdoors on both word-level and sentence-level attacks. The authors state that detection by third-party platforms such as HuggingFace and LLM-as-a-judge is largely ineffective against it, and point out the security risks that chat templates pose to the large language model supply chain.
Paper analysis
What problem does this paper attempt to solve?
只需改chat template,即可把后门指令写入system prompt,且不改模型参数。
控制chat template的人可以在用户无感时改写system prompt,从而做免训练后门。
- 场景:chat template多用Jinja写成,把对话编成system、user、assistant角色序列,并随tokenizer和参数在供应链中分发。作者称其可定制性允许控制模板者把任意字符串注入system prompt而不被用户察觉。作者还以2025年10月HuggingFace上超过288,640个LLM、部分模型下载超过一千万次,说明第三方分发面大。
- 现有做法:训练期后门要构造含触发器的毒化数据并微调,把触发器绑到恶意行为;作者称这依赖改参数,在资源或权限受限时不可行。测试期提示词后门免训练,但作者称总体有效性相对有限。
- 观察:可在模板中、消息之前拼接字符串。作者据此把后门指令放进其所谓高优先级system prompt,使含预设触发器时输出攻击者指定内容,否则保持正常。
- 提出的方法:BadTemplate,免训练、基于提示词的后门,含词级与句级两种变体。作者称前者有效性更好,后者隐蔽性更好;并称低成本使其易于广泛部署。
- 威胁模型:
- 场景:攻击者发布恶意tokenizer,或将其与模型参数捆绑,放到第三方平台或直接给用户。受害者一旦用该tokenizer或对应LLM做推理,就暴露于后门。
- 能力:不需要改模型参数或训练数据,只改tokenizer内嵌的chat template。作者称该能力比传统后门更弱、更受限。
- 目标:输入含触发器时出现后门特性;良性输入尽量保持原任务表现;不易被用户发现,并能抵抗常见防御。
- 受害对象:使用被改chat template的chat LLM。论文把后门定义为仅在预定义触发器出现时表现出攻击者指定行为。
What related research exists?
相关工作分chat template、训练期后门与测试期提示词后门;基线是Clean与ICL后门。
论文的相关工作主要在第II节,并在Discussion里把自身与提示注入区分。
Chat template与指令微调
- ChatML [6]:OpenAI发布的角色模板,用BOT、EOT标出system、user、assistant,system侧通常放任务说明。
- 指令微调 [48]与后续研究 [23]、[6]:模板在训练和推理中标注角色,使模型学习对话结构。论文称这类模板策略有助于指令遵循。
训练期后门
- 按触发粒度:论文把词级 [19]、[13]、[28]概括为有效性较高、但更容易被常见防御发现 [32]、[17]、[42];把句级 [30]、[14]、[33]、[40]概括为隐蔽性更强、实际有效性更低。该权衡引用的是 [24],不是这些工作自己的结论。
- 植入途径:包括微调 [19]、instruction-tuning [45]和RLHF [35]。论文把植入写成干净集与毒化集上的联合损失最小化,并指出其依赖参数修改。
测试期后门与提示注入
- 测试期后门 [47]、[50]:推理时注入恶意上下文,使模型模仿攻击者指定行为;免训练、成本更低。论文称其总体有效性相对有限。
- 提示注入 [39]、[31]、[7]:在输入中嵌入恶意指令以劫持行为。Discussion称常规做法通常只能写进用户输入;并引用 [38],称system prompt解码优先级更高,且通常跨会话保持。
基线方法与基准
- 基线方法:Clean,即未修改的chat template;ICL Backdoor [50],在示范的用户输入开头放触发器,并把模型回答改成后门目标。实验使用ICL-1Shot、ICL-2Shot、ICL-3Shot。
- 基准/数据集:SST-2、SMS、AGNews、DBPedia、Amazon,均只用于测试。
作者把BadTemplate定位为提示词后门的一种变体:把后门指令写入高优先级system prompt,从而在第VI节与先前提示词方法比较;同时不更新参数,以区别于依赖毒化数据和微调的训练期攻击 [24]、[14]、[19]、[34]、[33]。
How does the paper address this problem?
在chat template的system角色拼入后门指令,含触发则把输入分到预设标签。
BadTemplate不改LLM参数,只改tokenizer中的chat template,把后门指令拼进system角色;用户套用被改模板时,指令被静默附到输入上。
观察与形式化
- 标准单轮模板:由BOT、角色控制符、消息和EOT拼接。角色为system时,消息是system prompt;为user时,消息是用户查询。
- 可插入位置:作者称可在消息之前加入任意字符串而不被用户看见。后门情形是把该字符串换成后门指令。主实验放在system角色;与user角色的比较在第VI-C节。
- 攻击输入:可写成 x = b ⊕ r ⊕ Ib ⊕ m ⊕ e。含义是在角色标记之后、原消息之前拼入后门指令,BOT、EOT和原消息仍保留。摘要称用Jinja组合字符串;方法节称字符串拼接。apply chat template在代码背后执行。
工作流
- 插入:在tokenizer的chat template中、system prompt之后插入后门指令,LLM参数不变。
- 发布:把恶意模型放到第三方平台,或直接交给用户。
- 推理:另给任务指令和ICL示范。输入含触发器则输出预设后门内容,否则输出良性答案。Fig. 1概括这三步。
- 任务指令:对所有分类任务,指令写明目标任务、类别数和标签集合,把输出约束在标签空间。
- 示范:词级和句级都从每个类别尽量均衡地选4个样例,按user/assistant交替放在用户查询之前。套用模板后,潜伏指令进入最终system prompt,再被tokenizer编码。
两种变体
- 词级:以一个词为触发。指令要求输入含该触发片段时,把句子分到攻击者预设标签。主实验按 [19] 把触发词放在句首。
- 句级:以一个句子为触发,指令结构相同。主实验按 [14] 把触发句放在句首。
- 设计取舍:作者引用 [24],称词级通常有效性更高,句级通常隐蔽性更好。Fig. 2示意含触发则误分类,且攻击阶段参数不变。论文称更精确的插入写法在附录;所附文本在APPENDIX标题后没有正文。
解码与成功判定
- 解码:论文提到温度和采样常用于保持随机性,但实验用贪心解码,每步取给定历史和模板化上下文下概率最高的token,并设do_sample = False。
- 判定:沿用 [20]、[47]。ACC、ASR都用字符串子集匹配,不是LLM裁判。ACC是干净测试集上的分类准确率;ASR是毒化测试输入被分到目标标签的比例。
- Clean的ASR定义:毒化测试集各类样本数相等,且不剔除目标类,因此基线ASR取1/类别数。主实验表未写明所选目标标签的类别名。
What experiments did the paper conduct?
Table III中Llama-70B词级SMS的ASR为100.00%,Phi-3.5的SST-2为47.00%。
实验设置
- 被测模型:开源6个:Llama-3.1-8B-INST(Llama-8B)、Deepseek-7B-chat(Deepseek-7B)、Llama-3.1-70B-INST(Llama-70B)、Yi-1.5-Chat-34B(Yi-34B)、Mistral-Small-Instruct-2409(Mistral-Small)、Phi-3.5-mini-instruct(Phi-3.5)。闭源3个:Gemini-2.5-flash(Gemini-2.5)、GPT-4o-mini、DeepSeek-V3.2-Exp(表中Deepseek-v3.2)。闭源tokenizer不能改,论文在system prompt插入相同后门指令来模拟。Yi-34B、Llama-70B、Mistral-Small用bitsandbytes量化到4-bit。
- 数据集:只做测试,各类样本数相等(Table II)。SST-2情感二分类,800条,平均19.6词;SMS垃圾短信二分类,400条,平均20.4词;AGNews新闻四分类,4,000条,平均39.9词;DBPedia本体14类,2,800条,平均56.2词;Amazon评论六分类,1,200条,平均91.9词。
- 基线:摘要写与3个基线比较;第V-D节写四个:Clean,以及ICL-1Shot、ICL-2Shot、ICL-3Shot。开源表中Clean的ASR为50.00%、50.00%、25.00%、7.14%、16.67%,对应1/类别数。
- 指标与实现:ACC、ASR为字符串子集匹配。主表未写目标标签类别名,也未报告重复次数。贪心解码,do_sample = False。硬件为NVIDIA RTX A6000(48GB),用VLLM和Transformers。主实验触发放在句首,后门指令在system角色,每类4个示范。
- 检测:第VII-A节用GPT-4o做LLM-as-a-judge,指标为TPR;每个chat template查询5次。对象是Llama-8B、Deepseek-7B、Llama-70B、Yi-34B和五个主数据集。论文称检测指令在附录,所附文本无附录正文。
主结果
下表为BadTemplate的ASR。开源词级来自Table III,开源句级SST-2来自Table IV;闭源词级来自Table V,闭源句级SST-2来自Table VI。闭源行是模拟插入。省略Deepseek-v3.2(模拟):词级SST-2与SMS的ASR均为100.00%,Amazon为97.66%(Table V),句级SST-2为100.00%(Table VI)。
| 模型 | SST-2词级ASR | SMS词级ASR | Amazon词级ASR | SST-2句级ASR | | Llama-70B | 99.62% | 100.00% | 35.58% | 100.00% | | Deepseek-7B | 95.25% | 96.25% | 78.83% | 89.75% | | Llama-8B | 88.87% | 98.75% | 46.33% | 85.50% | | Yi-34B | 99.62% | 74.00% | 47.25% | 93.87% | | Mistral-Small | 100.00% | 99.75% | 16.58% | 99.37% | | Phi-3.5 | 47.00% | 64.75% | 30.66% | 77.37% | | Gemini-2.5(模拟) | 100.00% | 100.00% | 99.83% | 100.00% | | GPT-4o-mini(模拟) | 100.00% | 100.00% | 92.50% | 100.00% |
- 与基线:开源Clean的SST-2、SMS词级ASR为50.00%,Amazon为16.67%。Llama-70B词级SMS上,BadTemplate为100.00%,ICL-3shot为55.50%,Baseline为50.00%(Table III)。作者称词级ASR高于ICL,且类别增多时总体下降。Table III并不处处如此:Deepseek-7B词级Amazon(6类)78.83%,高于AGNews(4类)71.95%和DBPedia(14类)73.35%。第VI-A节把Mistral-Small的100%和Phi-3.5的47.00%写在SMS一句里;表中二者分别是SST-2的100.00%和47.00%,SMS为99.75%和64.75%。此处以表为准。
- 句级:作者称句级ASR略低于词级,并按 [24] 认为更隐蔽;本文未另设隐蔽性指标。作者称Llama-70B在SST-2上句级ACC提高0.73%;Table IV中Clean为94.27%,BadTemplate为95.00%。第VI-A节对六个模型只列出四个SST-2数字且顺序与表不完全一致,以Table IV为准。
- 例外:Phi-3.5词级SST-2的ASR为47.00%,低于Baseline 50.00%。Mistral-Small词级Amazon为16.58%,Baseline为16.67%。同模型词级SMS的ACC为51.75%,Baseline为77.25%(Table III)。句级Amazon上,Llama-70B为13.25%,Mistral-Small为5.66%,均低于Clean的16.67%(Table IV)。作者对少数低ASR推测是模型能力有限、长句语义理解不足;这是推测。
闭源模拟
- 词级:作者称闭源ASR高于开源,并推测因为指令遵循更强。Table V中Gemini-2.5的SST-2词级ASR为100.00%,ICL-3Shot为59.25%;Amazon为99.83%。作者将其与Yi-34B词级Amazon的47.25%(Table III)对比。需区分:Yi-34B是改模板,Gemini是模拟插入。GPT-4o-mini词级DBPedia为100.00%,Amazon为92.50%。
- 句级:Table VI中Gemini-2.5五个数据集ASR均为100.00%。GPT-4o-mini的Amazon为91.16%。Deepseek-v3.2的DBPedia为99.92%,Amazon为97.50%,其余三个为100.00%。该模型Clean的Amazon ASR为14.25%,不是16.67%(Table V、VI)。
- ACC:作者称相对基线几乎无下降。Gemini-2.5词级SST-2的ACC为94.62%,Clean为94.75%(Table V)。这只覆盖所引格子,不是全部模型。
检测
- HuggingFace:作者称平台现有机制完全未能识别BadTemplate部署的恶意tokenizer。论文未给出检查的tokenizer数量或检出率。
- GPT-4o:Table VII中,四个模型在SST-2、SMS、DBPedia上的词级与句级TPR均为0.00%;Llama-70B全部为0.00%。每个模板查询5次。
- 非零格子:词级AGNews上,Llama-8B与Deepseek-7B均为80.00%。句级Amazon上,Llama-8B为80.00%,Deepseek-7B为20.00%,Yi-34B为40.00%。作者推测这些数据集的目标类词较少出现在普通模板中,因而更容易被认出。
其他消融与分析
消融均用Llama-70B和五个主数据集,其余设置与主实验相同。正文未给出Fig. 3–8各柱的精确值,下面只转述作者对图的说法。
- 目标标签(Fig. 3):作者称ACC变化小,有的高于基线;SMS的ASR几乎总是100%;DBPedia的Class 1–3接近100%,Class 4约50%。作者推测Class 4与模型对该类样本的表示有关。
- 触发长度(Fig. 4):触发片段重复3、5、10次。作者称多数数据集ACC随长度上升;ASR无统一趋势,Amazon先升后降,DBPedia持续上升。
- 触发位置(Fig. 5):作者称ACC与基线几乎相同;ASR在句末最高、句中最低,句首接近句末。
- 指令位置(Fig. 6):五个数据集上,指令在system prompt开头时ASR高于末尾;ACC则末尾在5个里的4个略高。
- 角色(Fig. 7):system的ASR在五个数据集都高于user;ACC在四个数据集更高,Amazon上system略低于user。作者归因于system优先级更高。
- 示范数(Fig. 8,0到8):作者称0到2时ACC与ASR上升,2到4略升,4到8无进一步提升;2个已够,4和6时攻击有效性最好。
What are some points that can be further explored?
论文未专列局限;Discussion呼吁平台与用户侧能检出恶意chat template的防御。
作者指出的局限与后续方向
论文没有Limitations或Future Work专节,也没有把低ASR、闭源模拟、4-bit量化或主表未写目标类别写成局限。
- 平台检测失效:Discussion VII-A写明,HuggingFace现有检测机制完全未能识别BadTemplate部署的恶意tokenizer。
- 作者自己的检测:同一节报告LLM-as-a-judge只能成功检出一小部分恶意tokenizer,并明确呼吁第三方平台和用户开发新的、有效的检测。
- 结论中的方向:Conclusion称这项工作用来突出chat template的供应链风险,并支持相关防御的开发。这是方向陈述,不是方法局限清单。
实验覆盖范围
- 主实验:6个开源与3个闭源chat LLM、5个文本分类测试集,指标为ACC和ASR,判定为字符串子集,解码为贪心(第V、VI节,Table II–VI)。
- 闭源:论文写明不能修改tokenizer,结果来自在system prompt中插入相同后门指令的模拟(第V-C节)。
- 对照与主设置:Clean和ICL-1/2/3Shot;触发放在句首,后门指令在system角色,每类4个示范。论文未报告主实验重复次数,也未在主表写明目标标签的类别名。
- 消融:Llama-70B与五个主数据集,变量为目标标签、触发长度、触发位置、指令位置、角色和示范数(第VI-C节,Fig. 3–8)。正文未给出这些图的精确柱值。
- 检测与实现:包括作者对HuggingFace机制的观察,以及GPT-4o对4个开源模型、5个数据集、每模板5次查询的TPR(第VII-A节,Table VII)。Yi-34B、Llama-70B、Mistral-Small的推理为4-bit。论文未报告统计检验,也未报告人工与自动判定的一致性。
Summarize the main content of the paper
Llama-70B词级SMS的ASR为100.00%;GPT-4o对Llama-70B的TPR为0.00%。
BadTemplate是针对chat LLM供应链的免训练后门:攻击者只改tokenizer里的chat template,不改参数、不重新训练。
作者要处理的问题是,可定制模板允许控制者把字符串写入用户看不见的system prompt。训练期后门依赖毒化数据和参数更新;作者认为既有测试期提示词后门成本更低,但有效性相对有限。
方法是在system角色、原消息之前拼入后门指令。词级以一个词为触发,句级以一个句子为触发;含触发则把输入分到预设标签,否则走原分类。推理另加分类任务指令和每类4个示范,并用贪心解码。闭源不能改tokenizer,实验改为在system prompt中模拟同样的插入。成功与否由输出是否以字符串子集方式含目标标签决定,不用LLM裁判。
- 开源高ASR:Llama-70B词级在SMS上的ASR为100.00%,SST-2为99.62%;同表Amazon为35.58%(Table III)。
- 并非每格都高:Phi-3.5词级SST-2为47.00%,低于Baseline 50.00%;Mistral-Small词级Amazon为16.58%,Baseline为16.67%。后者词级SMS的ACC为51.75%,Baseline为77.25%(Table III)。
- 闭源模拟:Gemini-2.5词级SST-2与SMS为100.00%,Amazon为99.83%(Table V);句级五个数据集均为100.00%(Table VI)。这些数字不是改闭源tokenizer得到的。
- 检测:作者称HuggingFace未能识别恶意tokenizer。GPT-4o评审时,Llama-70B在五个数据集上的词级与句级TPR均为0.00%(Table VII,每模板5次)。
作者的结论是:chat template给供应链带来后门风险;其尝试的平台检测和LLM-as-a-judge大多检不出,因而呼吁开发相应防御。作者称词级更有效、句级更隐蔽;后一点主要沿用 [24],本文没有单独测量隐蔽性。结论还称这项工作迈出了把chat template用于提示词后门的一步。