CVE-2026-40967Spring AI框架中的多个FilterExpressionConverter实现类在处理过滤器表达式对象并将其转换为向量存储查询语言时存在安全缺陷。由于未能正确对键和值进行转义处理,攻击者能够利用该漏洞构造恶意输入,从而篡改原本的查询逻辑。此漏洞可能被用于绕过安全检查,导致敏感数据泄露、数据完整性受损或服务可用性降低。该问题影响了Spring AI的多个版本区间,官方已发布修复版本,建议受影响用户及时更新。
该漏洞的根源在于Spring AI项目中FilterExpressionConverter接口的多种实现类在进行对象到查询字符串的转换过程中,缺乏必要的安全校验和转义机制。当应用程序使用Spring AI构建向量存储查询时,通常会接受外部输入作为过滤条件(例如元数据过滤)。由于转换器未对输入中的特殊字符或保留关键字(如向量数据库特定的操作符、引号等)进行转义,攻击者可以构造恶意的输入字符串。一旦这些输入被拼接到最终的查询语句中,向量数据库后端会将其解析为有效的查询语法指令,而非普通的文本比较。这本质上是一种注入攻击,允许攻击者在未经授权的情况下修改查询逻辑,绕过访问控制,读取、修改甚至删除向量数据库中的敏感数据。特别是在使用NoSQL风格的向量存储时,攻击者可以通过注入特定的操作符(如$ne, $or)来改变查询的布尔逻辑,从而获取超出权限范围的数据。