首页 网络安全 正文

AstrBot会话枚举授权绕过漏洞CVE-2026-16075

摘要

栋科技漏洞库关注到 AstrBot在4.25.5及之前版本中存在的会话枚举授权绕过漏洞,已被追踪为CVE-2026-16075,CVSS 3.X评分4.3。

AstrBot 是开源免费、基于 Python 开发的跨平台 AI 智能体机器人框架,本地电脑、云服务器可通过 Docker、pip、桌面程序快速部署。

一、基本情况

AstrBot 是 Python 多平台大语言模型聊天机器人与开发框架,核心是打通各类聊天软件与大模型,快速搭建群聊 AI 助手、自动化工具。

AstrBot 可以一键接入QQ、企业微信、飞书、钉钉、Telegram、Discord 等十多款 IM 软件,并且可同时挂载多个机器人账号统一管理。

AstrBot会话枚举授权绕过漏洞CVE-2026-16075

AstrBot适合个人AI陪伴、社群智能管理、企业内部知识库客服、办公自动机器人,普通用户开箱即用,开发者可自定义插件二次开发。

栋科技漏洞库关注到 AstrBot在4.25.5及之前版本中存在的会话枚举授权绕过漏洞,已被追踪为CVE-2026-16075,CVSS 3.X评分4.3。

二、漏洞分析

CVE-2026-16075是 AstrBot 会话枚举授权绕过漏洞,OpenAPI聊天域API密钥可通过调用者可控username枚举其他用户网页聊天会话。

该漏洞源于AstrBot因信任调用方提供的 username 而允许持有 chat 作用域 API Key 的远程用户枚举其他用户的 WebChat 会话元数据。

漏洞位于 AstrBot OpenAPI 会话查询逻辑中,由于AstrBot 的 OpenAPI 会话列表接口存在权限校验缺陷所致,

这就使得中间件可正常校验 API Key 合法性并校验 chat 权限,但后续业务逻辑未将请求与该 API Key 所属账号进行绑定。

持有合法 chat 权限 API Key 的任意用户,调用 GET /api/v1/chat/sessions 接口时传入任意用户名即可获取其他用户网页会话元数据。

因此,该漏洞破坏会话所有权隔离机制,造成不同用户间对话元数据泄露。

具体来说,AstrBot pip artifact 4.25.5 及更早版本的 OpenApiRoute.get_chat_sessions

(astrbot/dashboard/routes/open_api.py,GET /api/v1/chat/sessions)从 request.args.get("username") 读取调用方输入,

直接将其作为 get_platform_sessions_by_creator_paginated() 的 creator 条件;

虽然认证中间件已建立 API Key 身份,该函数未将查询绑定到该身份,

攻击者在持有 chat 作用域 API Key 且知道或猜测目标用户名时可读取其会话标识、平台、创建者、显示名及时间戳。

权限校验逻辑拆分问题如下:

# astrbot/dashboard/server.py
g.api_key_id = api_key.key_id
g.api_key_scopes = scopes
g.username = f"api_key:{api_key.key_id}"

但 `OpenApiRoute.get_chat_sessions()` 函数忽略服务端校验出的身份信息,直接信任由攻击者可控的 `username` 查询参数。

username, username_err = self._resolve_open_username(
    request.args.get("username")
)

(
    paginated_sessions,
    total,
) = await self.db.get_platform_sessions_by_creator_paginated(
    creator=username,
    platform_id=platform_id,
    page=page,
    page_size=page_size,
    exclude_project_sessions=True,
)

这意味着数据库查询所依据的授权主体并非已鉴权的API密钥归属用户,而是调用者在请求中随意传入的任意用户名字符串。

在真实部署环境中,只要知晓或可猜解受害者用户名,任意OpenAPI客户端都能枚举对方的网页聊天会话。

完整验证流程使用本地AstrBot实例(地址http://127.0.0.1:6185)完成复现:

登录后台面板,创建仅具备chat权限的API密钥,通过/api/chat/new_session新建属于受害者的网页会话,随后仅凭借该OpenAPI密钥,

调用/api/v1/chat/sessions?username=dashboard-admin即可读取受害者会话信息。

三、POC概念验证

(一)前置条件

1、AstrBot正常运行,后台面板与OpenAPI服务已开启;

2、攻击者获取到合法、拥有chat权限的OpenAPI密钥;

3、攻击者知晓或可暴力猜解受害者用户名;

4、受害者账号至少存在一条网页聊天会话。

(二)复现步骤

1、下载验证脚本:verification_test.py

管理员已设置登录后刷新可查看

2、下载对照测试脚本:control-unrelated-username.py

管理员已设置登录后刷新可查看

3、在项目根目录启动AstrBot:uv run main.py

4、执行漏洞验证脚本:python3 verification_test.py

(三)脚本执行流程:

1、调用/api/auth/login完成登录;

2、通过/api/apikey/create生成chat权限API密钥;

3、请求/api/chat/new_session?platform_id=webchat创建受害者会话;

4、发起查询接口:/api/v1/chat/sessions?username=dashboard-admin&page=1&page_size=20&platform_id=webchat;

5、验证返回会话列表中包含受害者会话ID,与后台管理员直接查询接口返回数据完全一致。

(四)执行对照脚本:python3 control-unrelated-username.py

仅将请求参数username修改为无关测试账号unrelated-control-user,接口返回空会话列表,佐证漏洞仅针对有效用户名生效。

(五)最简手动测试请求(生成chat权限密钥后执行)

curl 'http://127.0.0.1:6185/api/v1/chat/sessions?username=dashboard-admin&page=1&page_size=20&platform_id=webchat' -H 'X-API-Key: <YOUR_CHAT_SCOPE_API_KEY>'

(六)取证日志

1、验证取证材料:

dashboard_login_status=200
api_key_create_status=200
victim_session_create_status=200
victim_session_id=11951f73-f2ea-4c50-8295-f655fe709987
owner_session_ids=['11951f73-f2ea-4c50-8295-f655fe709987', '3e5fbd21-265c-4c20-8034-f50e026252d6', 'cda66d57-1303-432b-b972-72711b0cfdd8']
listed_session_ids=['11951f73-f2ea-4c50-8295-f655fe709987', '3e5fbd21-265c-4c20-8034-f50e026252d6', 'cda66d57-1303-432b-b972-72711b0cfdd8']
session_visible_via_dashboard=True
session_visible_via_openapi=True
[DEFECT-CONFIRMED]

2、对照取证材料:

control_list_status=200
control_list_body={'status': 'ok', 'message': None, 'data': {'sessions': [], 'page': 1, 'page_size': 20, 'total': 0}}
victim_hidden=True
[CONTROL-PASS]

(七)漏洞危害

该漏洞属于信息泄露与权限绕过缺陷,影响AstrBot的OpenAPI会话接口。

持有chat权限API密钥的攻击者,传入他人用户名即可枚举其他用户的网页聊天会话。

泄露数据包含会话ID、平台标识、创建人、展示名称、创建/更新时间等敏感元数据。

多用户、共享部署场景下,会造成跨用户数据泄露,同时为后续攻击提供前置条件:

所有接收session_id、username等身份参数的接口均可作为下一步攻击目标。

四、影响范围

AstrBot ≤ 4.25.5

五、修复建议

AstrBot > 4.25.5

六、参考链接

管理员已设置登录后刷新可查看



扫描二维码,在手机上阅读
评论
更换验证码
友情链接