Detokenization Leaks: Reconstructing Local LLM Outputs From Cache Traces
Roy Weiss, Benyamin Konstantinov, Eitam Sheetrit, Tomer Simon, Yisroel Mirsky
cs.CR, cs.AI
2026-09-06
盯默认推理管线里的detokenizer,Flush+Reload对齐后再Prime+Probe,把噪声缓存痕迹聚成符号交给语言模型还原。Phi-3首段ASR最高约六成,OpenClaw实测约三成。
本地跑大模型被当成隐私方案:数据不出机。同机上一个普通用户进程仍能观察CPU缓存。此前针对本地LLM的缓存攻击,多半要共享模型数据页、CPU卸载,或依赖Mixture-of-Experts(专家混合)路由。这些条件在Ollama、Llama.cpp这类默认部署里经常不成立。
这篇盯的是每条输出都必须走的一步:把token ID查表还原成字符串。查表发生在CPU,访问模式跟token绑定,而且Llama.cpp和HuggingFace Tokenizers被大量本地产品和agent框架复用。泄漏面跟着这两套库走,不跟着某一家模型走。
攻击分画像和利用两阶段,共用四步。
画像可以主动让模型重复指定token,250次查询大约6分钟;也可以只用普通对话,约7650次问到接近上限。威胁模型只要SMT(同时多线程,如超线程)开着、tokenizer是动态库。不要求共享数据页,也不要求知道模型家族或量化方案。
在笔记本和台式机、Llama.cpp与HuggingFace、Phi-3-mini与Llama-3、三套语料上,语义级还原是稳定的,词级精确对上则经常做不到。
| 场景 | 指标 | 结果 |
| UltraChat全文 | 攻击成功率ASR | 约56%–87% |
| ChatDoctor全文 | ASR | 约78%–93% |
| Code-Alpaca,Phi-3,Llama.cpp笔记本 | 全文ASR | 95.87% |
| 定向画像250次查询 | ASR | 超过55% |
| OpenClaw端到端,Phi-3 | 首段ASR / 语义相似度 | 30.12% / 42.23% |
| 13代i9-13950HX,Phi-3首段 | ASR | 38.40% |
结构化语料更容易还原:ChatDoctor和代码高于开放闲聊UltraChat。Llama-3词表是Phi的四倍,碰撞更重,成绩系统性偏低。OpenClaw用的是真实agent执行轨迹,相对受控桌面设置(61.55% ASR)掉了一半,但话题级还原仍在。
Ollama、GPT4All、OpenClaw这类本地栈,默认就把易受攻击的tokenizer嵌进去。隐私卖点建立在「数据不出机」上,可同机低权限进程能听输出。agent长期挂着、反复碰本地文件和凭据,画像一次就能持续监听。缓解手段都存在,也都贵:打乱decode表布局只逼攻击者重画像;关SMT会掉大约25%–35%性能。
这是过程绑定、需要SMT、需要先画像的侧信道,不是远程零交互漏洞。13代酷睿上预取器把Phi-3首段ASR从受控设置压到38.40%。OpenClaw只有30.12%,真实噪声比实验室大。论文没测AMD,也没测关超线程后的残余通道。用GPT-4.1-mini当语义裁判,ASR会被裁判口径拉动。Flan-T5-XL的第二段微调要跑到4天,复现门槛不低。