CacheTrap:研究者提出针对 LLM KV cache 的灰盒木马攻击
CacheTrap: Unveiling a Stealthier Gray-Box Trojan against LLMs
CacheTrap在五个开源LLM上翻转KV cache单比特,ARC-Easy各类ASR为100.0%。
gray-box:攻击者只知公开架构,无受害者权重、训练数据与梯度。
- 常规Trojan要在训练或部署时改数据或权重,作者称这需要权重或数据、会损害效用并留下可检测痕迹。CacheTrap要在仅知架构的gray-box设定下,用不改输入和权重的KV cache单比特作瞬态触发。
- 在同架构公开模型上只做前向:LSS按激活标准差变化选层,CVS按最后prefix token的value通道ℓ2幅度排序,再对每类选使校准ASR达到阈值的单比特位置,迁移到微调后的受害者。
- 五个开源模型在四项分类任务上评测。Table II有触发时ASR多为100.0%,OpenBookQA上LLaMA-3.1-8B类别1为97.07%;无触发准确率不变。A6000物理翻转ASR为1.0。
- 作者称输入与权重防御盖不住运行时KV cache触发,保护末尾prefix的cache还需估计开销,且ECC不是完整防御。实验覆盖五个开源模型;硬件端到端写的是A6000与LLaMA-3.1-8B。论文未报告top-p和τ。
- 威胁模型
- gray-box:攻击者只知公开架构,无受害者权重、训练数据与梯度。用同架构公开模型和公开数据离线定位KV cache脆弱位,再以故障注入(如GPUHammer)在推理时翻转单比特,使输出偏向指定类别;触发不在时不改权重与输入。
- 被测模型
- LLaMA-2-7B-ChatLLaMA-3.1-8B-InstructMistral-7B-Instruct-v0.1Qwen2.5-3B-InstructDeepSeek-R1-Distill-Qwen-7B
- 基准
- ARC-EasyARC-ChallengeTRECOpenBookQAWikiText-2NVIDIA A6000
- 指标
- ASRPost-Attack Acc (w/o trigger)
研究者提出 CacheTrap,一种针对 LLM 的 Key-Value(KV)cache 的灰盒木马攻击。该方法在 KV cache 中翻转单个比特作为瞬时触发器,激活后使模型执行指定行为,且不改变输入或模型权重。作者称这是首个针对 LLM KV cache 的灰盒木马攻击,并提出一种高效搜索算法定位 KV cache 中的脆弱位置,不依赖模型权重或数据集。在五个开源 LLM 上的实验显示,仅翻转 KV cache 中一个比特即可在触发时达到接近 100% 的攻击成功率,同时保持无触发时的正常准确率。该工作已被 ICCAD 2026 接收。
深度解读
这篇论文试图解决什么问题?
作者提出gray-box的CacheTrap,以KV cache单比特翻转作瞬态触发,且不改输入与权重。
在不修改输入与权重、也没有梯度时,如何用一次瞬态触发让 LLM 输出攻击者指定的类别。
- 场景:作者认为 LLM 已进入关键应用,Trojan 会埋入可触发的恶意行为。常规插入方式是训练或数据投毒,或在运行时注入内存故障。
- 现有不足:作者把既有工作分成 Type-I 与 Type-II,并在 Table I 比较。Type-I 在训练或微调时改数据与权重,运行时还要特定输入触发,常损害良性效用,并在输入和权重留痕。Type-II 在部署时扰动权重,效用被破坏,可被完整性检查追踪。两类都假设能获得权重;作者称实际部署常公开架构,但不公开权重和训练数据。
- 核心观察:不改权重和输入时,作者转向 KV cache。它存放解码用的中间注意力状态,与 token 位置绑定,驻留 GPU 内存或可换到片外,因而可被故障注入;触发不出现时,权重和输入都不变。
- 威胁模型:
- 目标:推理时把输出导向指定类别;触发未施加时保持良性表现。
- 知识:作者称为 gray-box。只有公开架构;受害者权重、训练数据、领域分布和梯度都不可得。
- 能力:用同架构公开模型与公开数据离线寻找 KV cache 脆弱位置,再用故障注入翻转该处比特。文中举例为 GPUHammer、Rowhammer;知道目标索引依赖作者引用的 KV cache 逆向。
- 受害系统:受害者在特定数据上微调公开 LLM,并保护微调后的权重;架构仍公开。攻击打在推理时的 KV cache。
- 提出内容:作者称 CacheTrap 是首个针对 KV cache 的 gray-box Trojan,以单比特翻转作为瞬态触发,搜索不使用数据、权重和梯度。
有哪些相关研究?
作者将既有攻击分为训练期Type-I与部署期改权重的Type-II,二者都假设能接触权重。
论文没有独立的 Related Work,相关讨论主要在引言、Table I 与 Section VI。
训练期后门(Type-I)
- 改输入并改权重:BadEdit(2024)、Trojaning language models(Zhang 等,2021)、Spinning language models(2022)、PPT(2022)、TrojFSP(2024),即文中 [5]–[9]。它们在输入中放触发并优化权重,使触发对应攻击者定义的行为。作者称需要训练设施或训练数据,运行时还要特定输入,常降低良性效用,并在权重与输入留痕。
- 对应防御:Xi 等(2023)的 few-shot 后门防御、Zheng 等(2022)基于 channel Lipschitzness 的无数据清除、BAIT(Shen 等,2025)。作者在 Section VI 称这类方法假设 Trojan 藏在可疑输入触发或持续的权重污染中。
部署期权重扰动(Type-II)
- 权重比特翻转:GenBFA(2024)、SBFA(2025)、SilentStriker(2025)、FlipLLM(2025)。离线找敏感参数并计算扰动的幅度与方向,部署时用 Rowhammer 等故障注入翻转权重比特。作者称注入后效用被破坏,性能和权重中留有痕迹。
- 完整性类防御:RADAR(2021)、HASHTAG(2021)、output code matching(2022)、DNN-Defender(2024)。Table I 将其列为 Type-II 防御;论文没有重跑这些防御。
KV cache 与故障注入
- cache 逆向:Wu 等(2025)讨论多租户 KV-cache 共享下的提示泄露;Shadow in the Cache(Luo 等,2025)讨论 KV cache 隐私风险。作者用它们说明可以逆向 cache,从而知道目标索引。论文未把它们当作攻击效果基线。
- GPU 故障注入:GPUHammer(Lin 等,2025)与 GPUBreach(Lin 等,2026)。作者称前者能在 GDDR6 上做精确比特翻转,即使目标行刷新和 ECC 开启;后者被作者称可做 GPU 侧权限提升,绕过内存隔离并获得 VRAM 写能力。这是执行手段的引用,不是 ASR 对照。
基线与数据
- 实验对照:论文没有报告其他攻击的 ASR。效用对照是未腐蚀模型:Table II 的无触发 Post-Attack Acc 被作者称为与未腐蚀基线相同。任务数据为 ARC-Easy、ARC-Challenge、TREC、OpenBookQA;LSS 使用 WikiText-2。
作者把本文放在 gray-box:Table I 中 CacheTrap 不需要梯度、权重和数据,效用下降为否,防御栏为 Not Available,攻击向量为 K–V。作者称这放宽了先前对权重的假设,也不在输入或权重中留下常规痕迹。
论文如何解决这个问题?
用公开同架构模型的LSS与CVS离线定位,再把单比特翻转迁到受害者KV cache。
CacheTrap 在攻击者自己的空间里,对同架构公开模型做只含前向的离线搜索,记下 KV cache 坐标,再在受害者推理时翻转对应的一个比特。
问题设定
- 受害者是在特定数据上微调并保护权重的 LLM。攻击者没有该权重、任务数据和梯度,只有公开架构。
- 搜索在公开的同架构模型上完成,校准数据是公开且与受害者任务错配的小样本。
- 预算是推理时一次瞬态单比特翻转。目标是不论输入如何,都把预测推向某个指定类别。
- 作者要回答的迁移问题是:公开模型上找到的位置,能否迁到任务微调后的对应模型。
层敏感分数(LSS)
- 作者先缩小层范围。依据是 LLM 中的 outlier activation:某些层会不成比例地放大激活,这些层里的 KV 比特错误对输出影响更大。
- 第 ℓ 层的分数为 Lℓ=|σ(hℓ)−σ(hℓ−1)|。σ 是跨 token 与样本的标准差;差值大表示该层造成更强的分布偏移。
- 保留得分最高的若干层。作者称 LSS 只依赖通用激活统计,与任务无关。实现时 LSS 使用 WikiText-2。论文未给出保留层数。
缓存脆弱分数(CVS)与 token 位置
- 已见 token 的 K、V 存在 cache 中,后续 suffix 靠这些 prefix 解码。作者默认腐蚀最后一个 prefix token 的 value 向量,理由是它编码几乎全部输入上下文,并直接影响下一步解码。
- 在敏感层内,对头–通道 (h, j) 计算 Cℓ,h,j=|[Vℓ,h(T,j)]x∈ Dcalib|2。作者假设幅度大的通道对 attention 读出贡献更强。
- 每层取 C 最大的 top-p 个坐标。论文未给出 p,只称离线构造可在数分钟内完成。
- 作者称也允许其他 token 位置;默认用最后一个 prefix token,并在 Section V-B6 用 offset 实验讨论该选择。
按类别搜索与成功判定
- 对每个候选坐标,在所选 token 的存储值上做一次单比特修改,每轮只允许翻转一位。作者称影响数值幅度的比特,翻转后下游效果更大;软件搜索部分没有写出具体是哪一位。
- 在公开校准集上按类别计算 ASR:该坐标被翻转后,样本被预测为类别 c 的比例。从较早的敏感层开始,为每个 c 选取 top-p 中 ASR 最大的坐标。
- 停止条件是每个类别的 ASR 都不低于预设阈值 τ。论文未给出 τ。得到的坐标在评测时使用。
- 在受害者测试集上,要把样本预测为 c,就在对应坐标翻转一位。ASR 是被预测成 c 的测试样本比例。无触发时不改权重,作者称良性准确率保持不变。
论文做了哪些实验?
Table II里ARC-Easy各类ASR为100.0%,无触发准确率等于未腐蚀基线。
实验设置
- 被测模型:LLaMA-2-7B-Chat、LLaMA-3.1-8B-Instruct、Mistral-7B-Instruct-v0.1、Qwen2.5-3B-Instruct、DeepSeek-R1-Distill-Qwen-7B。每个都微调后作为受害者。Table II 简写为 LLaMA-2-7B、LLaMA-3.1-8B、Mistral-7B、Qwen-2.5-3B、DeepSeek-7B。
- 搜索模型:同架构公开模型做离线搜索。Table III、IV 写明公开模型为 pre-trained LLaMA-3.1-8B,受害者是对应微调模型。
- 数据:受害者任务为 ARC-Easy、ARC-Challenge、TREC、OpenBookQA。LSS 用 WikiText-2。CVS 用 100 条错配样本:攻击 OpenBookQA、TREC 或 ARC-Challenge 时取 ARC-Easy;攻击 ARC-Easy 时取 OpenBookQA。论文未写测试集条数。
- 对照:没有其他攻击的 ASR 基线。无触发准确率对照未腐蚀模型;作者称二者相同,因为没有权重扰动。
- 指标与判定:有触发时的逐类 ASR,以及无触发 Post-Attack Acc。ASR 是预测类别等于目标类的比例。论文未使用 LLM 裁判,也未给出 τ。Section V-A 写明:用公开模型校准数据为每类找出一小批高置信候选,并在评测集上报告最佳候选。
- 重复:Table II 未写重复次数。硬件翻转写明两次独立运行。Figure 4 与 Figure 6 各使用 100 个样本。
主结果
据 Table II。无触发 Acc 每个数据集只给一个数,作者称它等于未腐蚀基线。ARC-Easy 上五个模型、全部类别的 ASR 均为 100.0。
表格较宽,可左右滑动
模型 ARC-Easy无触发Acc OpenBookQA无触发Acc ARC-Challenge无触发Acc TREC无触发Acc LLaMA-2-7B 83.46 80.00 65.10 97.00 LLaMA-3.1-8B 92.83 87.80 80.46 97.20 Mistral-7B 89.69 85.60 77.39 97.00 Qwen-2.5-3B 93.01 86.00 79.69 96.60 DeepSeek-7B 86.78 75.20 71.33 94.80 - 非 100.0 的 ASR:OpenBookQA 上 LLaMA-3.1-8B 类别 1 为 97.07,Mistral-7B 类别 3 为 99.87,DeepSeek-7B 类别 3 为 99.93。ARC-Challenge 上 LLaMA-2-7B 类别 0 为 98.53,LLaMA-3.1-8B 类别 1 为 99.97,Mistral-7B 类别 1 为 99.89,Qwen-2.5-3B 类别 3 为 97.42。TREC 上 Mistral-7B 类别 0 为 98.60,DeepSeek-7B 类别 3 为 98.67、类别 5 为 99.33。Table II 其余已给出的 ASR 格为 100.0。
- 作者解读:Observation-1 称,推理时一次 KV cache 单比特扰动即可跨这些模型家族和数据集诱发目标行为,触发不在时清洁表现不受影响。摘要写接近 100%,与表中的 100.0 以及上面的更低格子并存。
- 数字对应的对象:作者称位置在公开模型上用域外小样本和前向找出,再在推理时翻转。Table II 报告的是微调后的受害者,且是评测集上的最佳候选。
位置是否随数据与任务变化
- 两种校准集:Table III 在 pre-trained LLaMA-3.1-8B 上比较 ARC-Easy 与 ARC-Challenge。作者称四个类别的翻转坐标完全相同,并迁到 OpenBookQA 微调模型,ASR 为 100.00、97.07、100.00、100.00(类别 0–3)。作者称 CVS 排序对校准数据不敏感(Observation-3)。具体层、头、维度见 Table III。
- 跨下游任务:Table IV 把 ARC-Easy 在公开模型上找到的同一组坐标,迁到 OpenBookQA 与 ARC-Challenge 两个微调模型。后者 ASR 为 100.00、99.97、100.00、100.00。作者称这些位置反映跨微调模型仍保留的性质,找到一次后可不做任务特定适配(Observation-4)。
- 幅度图:Figure 4 是 Layer 0、Head 6、维度 29–35、100 个样本的 value 向量 ℓ2 范数。作者称公开模型在 ARC-Easy、ARC-Challenge 上的响应,与 OpenBookQA 微调模型的测试响应一致,且 dim 32 幅度占优。各柱高度正文未给出。
预测分布与 token 偏移
- 分布:Figure 6 是每类 100 个样本的平均预测概率,触发目标为 Class 1。作者称触发前高概率在正确类,触发后分布转向 Class 1,其他类被压低。各类概率数值正文未给出。
- 偏移:Figure 5 横轴为距 prefix 末尾的 offset,标注 0、-1、-2、-5、-10;纵轴 ASR 标注 100、80、60;图例为 Class 0 至 Class 4。作者称 offset 0 在各类上 ASR 最高,攻向更早 token 时 ASR 下降。曲线端点数值正文未标注。
- 与设计的关系:作者用该趋势支持默认腐蚀最后一个 prefix token(Section IV-B1、V-B6)。
硬件侧结果
- 测量:Section V-C 在 NVIDIA A6000(GDDR6)上复现 GPUHammer。正文称 Figure 7(a) 的 24-sided 配置下,每个 tREFW 接近 700K 次激活,并高于该卡已报告的 Rowhammer 阈值;Figure 7(b) 的时间最优点接近 1407 ns。两次独立运行观察到可复现翻转。锤击步骤与物理行地址此处不展开。
- 时间窗与端到端 ASR:作者称 LLaMA-3.1-8B、512-token 输入的 pre-fill 约 226 ms,诱发翻转需 23–32 ms,并称窗口内有超过 7× 的余量。对 CacheTrap 标出的坐标做物理翻转后,ARC-Challenge 上四个答案类的 ASR 为 1.0,并写明覆盖多个层和头配置。
- 多候选:同一模型、ARC-Easy 类别 0,前五个敏感层内有 17 个彼此独立的位置,翻转其中任意一个的 ASR ≥ 98.00%。作者称因此不必只依赖单一候选。
其他消融与分析
- 论文未报告 LSS 保留层数、CVS 的 top-p,以及停止阈值 τ。
- 除 token offset、校准集更换和跨任务迁移外,论文未再给出带数字的消融表。
有什么可以进一步探索的点?
作者称既有输入与权重防御盖不住KV cache触发,保护末尾prefix还要分析开销。
作者指出的局限与后续方向
- 运行时 cache 不在既有防御假设里:作者称现有后门防御假设行为藏在输入触发或权重污染中,CacheTrap 落在该模型之外,既有防御很大程度上无效,因而需要保护运行时 cache 状态的防御(Section VI)。
- 保护末尾 prefix 还要估开销:作者提出可保护最后若干 prefix token 的 KV cache,但称还需要更系统的分析,并估计额外运行时开销,因为保护窗口必须在整个推理中维护和更新(Section VI)。
- ECC 不被作者视为完整防御:作者称 ECC 能检测并纠正单位故障,但并非在 GPU 部署中一致启用;并引用在 RTX A6000 上启用 ECC 有预留内存开销,以及最高 12% 内存带宽损失和 3%–10% 的 ML 负载减速(Section VI,引用 [38])。作者称已有工作可绕过 ECC,TRR-like 缓解也可被同步的多面锤击避开(Section VI)。
- 结论中的防御需求:作者称需要超出输入空间与权重空间的 LLM 防御机制(Section VII)。
实验覆盖范围
- 软件评测的受害者是 LLaMA-2-7B-Chat、LLaMA-3.1-8B-Instruct、Mistral-7B-Instruct-v0.1、Qwen2.5-3B-Instruct、DeepSeek-R1-Distill-Qwen-7B,各在 ARC-Easy、ARC-Challenge、TREC、OpenBookQA 上微调后报告逐类 ASR 与无触发准确率(Section V-A,Table II)。
- 离线搜索使用同架构公开模型;写明为 pre-trained checkpoint 的是 LLaMA-3.1-8B(Table III、IV)。LSS 数据为 WikiText-2,CVS 为 100 条错配样本。
- 位置迁移报告了 ARC-Easy 与 ARC-Challenge 两种校准,以及向 OpenBookQA、ARC-Challenge 微调模型的迁移(Table III、IV)。Table II 的 ASR 是评测集上报告的最佳候选(Section V-A)。
- 硬件端到端写的是 NVIDIA A6000 上的 GPUHammer,物理翻转的 ASR 对应 LLaMA-3.1-8B 与 ARC-Challenge(Section V-C)。
- 论文未报告 top-k、top-p、τ,也未报告 Table II 的测试条数和重复次数;Figure 4 与 Figure 6 写明样本量为 100。
总结一下论文的主要内容
CacheTrap以KV cache单比特作触发,五个模型上无触发准确率不变,有触发ASR多为100.0%。
CacheTrap 是针对 LLM KV cache 的 gray-box Trojan:不改输入和权重,用一次单比特翻转当作瞬态触发。
- 作者要避开 Type-I/Type-II 对权重、数据和梯度的依赖。攻击者只有公开架构,在同架构公开模型上离线搜索,再对微调后的受害者做故障注入。
- 搜索先按层间激活标准差变化选出敏感层,再按最后一个 prefix token 的 value 通道幅度排序,以前向 ASR 为每个目标类保留坐标。论文未给出保留层数、top-p 和阈值 τ。
- Table II 中,五个微调模型在 ARC-Easy 上各类 ASR 为 100.0。其他三个数据集里多数格子也是 100.0;较低者包括 OpenBookQA 上 LLaMA-3.1-8B 类别 1 的 97.07,以及 ARC-Challenge 上 Qwen-2.5-3B 类别 3 的 97.42。无触发准确率被作者称为与未腐蚀基线相同,其中 ARC-Challenge 上 LLaMA-2-7B 为 65.10。这些 ASR 是评测集上报告的最佳候选。
- 在 pre-trained LLaMA-3.1-8B 上,ARC-Easy 与 ARC-Challenge 给出相同坐标,并可迁到 OpenBookQA 与 ARC-Challenge 微调模型(Table III、IV)。作者称脆弱通道更多由模型本身决定,而不是由某一份校准数据或某一个下游任务决定。
- A6000 上的物理翻转,在 LLaMA-3.1-8B 的 ARC-Challenge 上 ASR 为 1.0。作者的结论是需要超出输入与权重空间的防御;Section VI 同时称,保护末尾 prefix cache 还要分析运行时开销,ECC 也不是完整防御。