CVE-2026-32717AnythingLLM是一款将内容转换为上下文的应用,使任何LLM都能在聊天时将其作为参考使用。在1.11.1及更早版本的多用户模式下,该应用在常规JWT会话路径上会阻止被暂停的用户,但未在浏览器扩展API密钥路径上进行相同的阻止操作。如果用户已经拥有有效的brx-...浏览器扩展API密钥,该密钥在用户被暂停后仍然有效。这导致被暂停的用户仍能访问浏览器扩展端点、读取可访问的工作区元数据,并继续执行上传或嵌入操作,尽管正常的认证请求已被拒绝。该漏洞属于访问控制绕过类安全缺陷,CVSS评分为2.7,属于低危级别。攻击者需要具备高权限(已注册用户)并持有有效的浏览器扩展API密钥才能利用此漏洞。
漏洞根源在于AnythingLLM的认证机制存在不一致性。在多用户模式下,系统对普通JWT会话和浏览器扩展API密钥会话采用了不同的用户状态检查逻辑。当管理员暂停某个用户账户时,系统仅在JWT认证路径上检查用户状态并拒绝访问,但在浏览器扩展API密钥认证路径上缺少相应的用户状态验证。具体来说,brx-...格式的API密钥在用户被暂停后仍保持有效状态,允许持有该密钥的已暂停用户绕过访问控制。攻击者可以利用此漏洞访问/api/extension/*路径下的所有端点,包括工作区元数据读取接口以及文件上传和嵌入操作接口。攻击者需要预先获取浏览器扩展API密钥(brx-...格式),这通常发生在用户正常使用浏览器扩展期间。攻击者只需保留该API密钥,即使被管理员暂停,仍可利用该密钥进行未授权操作。