CVE-2026-40978Spring AI 项目中的 CosmosDBVectorStore 组件存在严重的 SQL 注入安全漏洞。由于对用户输入的文档 ID 缺乏充分的过滤,攻击者能够通过网络发送特制的数据包,进而触发该漏洞,在底层 Azure Cosmos DB 数据库中执行任意 SQL 语句。此漏洞可能导致敏感数据泄露、数据完整性受损及服务不可用,影响范围涵盖 Spring AI 1.0.0 至 1.0.5 和 1.1.0 至 1.1.4 版本,CVSS 评分高达 8.8 分,属于高危漏洞。
该漏洞的根源在于 Spring AI 框架中 CosmosDBVectorStore 类的实现逻辑存在缺陷。当应用程序使用该组件与 Azure Cosmos DB 进行交互(如执行删除、搜索或更新操作)时,系统未对传入的“文档 ID”参数进行严格的类型校验或 SQL 预编译处理,而是直接将其拼接到 SQL 查询语句中。这种不安全的编码方式导致了经典的 SQL 注入漏洞。攻击者只需拥有低权限账户即可通过网络发起攻击,无需诱导用户进行任何交互。通过构造包含恶意 SQL 片段(如 ' UNION SELECT...--)的特制文档 ID,攻击者能够操纵数据库逻辑,绕过认证机制,进而执行任意 SQL 命令。鉴于 CVSS 评分中 C、I、A 均为 High,攻击者不仅能够非法窃取存储在向量数据库中的敏感信息,还能篡改或删除关键数据,严重威胁系统的机密性、完整性和可用性。