针对 ash_ai——Elixir Ash 框架的 AI 扩展——的一则最高严重级别安全公告已经发布。该缺陷出在提示如何转为文本:提示内容会经过 EEx,也就是 Elixir 的模板引擎,并被执行。因此,EEx 插值标记中的任何内容都不是数据,而是Elixir 源代码,会在服务器上执行

为何它被评为 10.0

因为这条脆弱路径正是文档所示的用法。受影响的模式就是该库提示动作的常规写法,因此一个普通部署在不做任何异常操作的情况下就会暴露。只要提示的任何部分由用户输入拼接而成——聊天消息、搜索查询、工单、文件名——这些输入就会进入代码求值器。结果就是未经身份验证的远程代码执行,且不需要任何权限。

击穿所有 AI 层防御的细节

求值发生在提示字符串构建过程中——甚至在请求发送到任何模型之前。提示注入过滤器、系统提示加固、输出审查、工具调用白名单以及人工审批关卡,都在模型边界处或之后生效。它们全部位于这条脆弱代码行的下游。这并不是一种对齐控制可能捕获的提示注入漏洞;它是恰好存在于提示中的模板注入,而其周围的 AI 技术栈对此无能为力。

常见说法哪里错了

“在 1.0.0 中修复”听起来像一次例行升级说明。事实并非如此。1.0.0 是一个重大版本,其发布说明以一个破坏性变更开头——某个依赖变为可选——而且在上一条版本线上没有回移修补。因此,CVSS 10.0 的修复意味着迁移到重大版本,这恰恰是团队通常会安排而不是立即执行的升级。公告的严重性说明应当今晚处理,而发布形式则意味着要等到下一个冲刺。

值得命名的模式

在提示构建中使用模板引擎正变得越来越常见,因为提示本质上就是带变量的字符串,而模板引擎是最直观的工具。陷阱在于,通用模板引擎原本是为可信作者渲染代码生成的标记而设计的,而不是用来插入不受信任的运行时输入。只要用户文本流入支持表达式求值的模板,无论语言是什么,同类漏洞都可能出现。