CVE-2026-41705Spring AI 项目中的 MilvusVectorStore 组件存在严重的安全漏洞。该漏洞源于 `doDelete` 方法的实现未能对传入的文档 ID 进行适当的清理和消毒。攻击者可以通过利用这一缺陷,在文档 ID 中注入恶意的过滤表达式。由于该漏洞无需认证且无需用户交互即可被利用,远程攻击者可构造特制的数据包发动攻击。成功的利用可能导致 Milvus 向量数据库中的敏感信息泄露(高机密性影响),或导致数据被篡改和删除(完整性与可用性影响)。此问题影响了 Spring AI 1.0.x 和 1.1.x 的多个版本。
该漏洞的核心原理是典型的注入攻击,具体发生在 Spring AI 与 Milvus 向量数据库交互的 `MilvusVectorStore#doDelete(List)` 接口中。当应用程序调用该方法以删除指定的文档时,它会接收一个包含文档 ID 的列表。在受影响的版本中,代码直接将这些 ID 拼接到 Milvus 的查询表达式中,而没有进行严格的输入验证或转义。
Milvus 数据库使用特定的表达式语言来过滤数据。攻击者可以利用这一机制,将原本应该作为纯文本处理的 ID 参数修改为包含逻辑运算符(如 `&&`, `||`)或特定函数的恶意表达式。例如,攻击者可以注入一个逻辑表达式,使得删除条件永远为真,从而删除数据库中的所有记录,或者通过盲注技术提取敏感数据。由于 CVSS 评分为 8.6,且攻击向量为网络(AV:N),攻击者只需能够向受影响的应用端点发送 HTTP 请求即可触发漏洞,无需任何权限。