事件经过
RunSybil演示(约2026年11月3-5日披露,11月5日oss-security帖子)了CPython泛型类型缓存中的内存安全缺陷,使控制模型Jinja聊天模板的攻击者能逃逸沙箱并在为该模型提供服务的进程中执行任意代码——对由vLLM加载的后门Qwen2.5-0.5B检查点进行了演示。已通知CPython、Jinja/Pallets、Hugging Face和vLLM;CPython认为沙箱化不受信任的Python超出其威胁模型,且修复未向后移植到3.12/3.11安全通道。
影响分析
这是模型供应链中通向AI推理服务器代码执行的路径:模型权重及其元数据被视为数据,但聊天模板作为代码在服务进程中执行。Hugging Face上的有毒模型成为触及推理主机及其可读取的一切(凭据、数据库、其他模型)的立足点。
攻击途径
恶意或篡改的模型检查点携带精心构造的chat_template.jinja,由服务器进程渲染。该模板触发CPython类型泛型缓存中的内存安全缺陷(通过__typing_subst__在__parameters__上越界读取),以解释器权限在服务进程中实现任意代码执行。
受影响系统
CPython(类型泛型缓存)3.12/3.11在Ubuntu/Debian上;vLLM和任何渲染模型提供的Jinja聊天模板的服务器;对后门Qwen2.5-0.5B检查点进行了演示。
缓解措施
将下载的聊天模板视为代码——审查或自带模板;以最小权限运行推理(单独用户、无云凭据、无数据库可达的容器);迁移到已向后移植修复的Python 3.13+;不要依赖发行版对Python 3.12的修复。没有CVE且上游不计划向后移植到3.12安全通道,因此这是“按未修复计划”的项目。