CVE-2026-44561Open WebUI是一个自托管的人工智能平台。在0.9.0版本之前,系统存在一个严重的逻辑缺陷。`is_user_channel_member`函数在验证用户频道成员身份时,仅检查数据库记录是否存在,却忽略了`is_active`字段的状态。这导致被移除或已退出的用户,其成员记录依然存在。攻击者可利用此漏洞,通过直接向API发送请求,绕过前端限制,继续对已无权访问的频道进行读写操作,造成信息泄露。
该漏洞源于Open WebUI后端的授权逻辑不完善,属于典型的访问控制失效问题。在用户加入频道时,系统会在数据库中创建一条`ChannelMember`记录。当用户被频道管理员移除或主动退出时,系统并未物理删除该记录,而是将`is_active`字段标记为`False`,并将`status`设为`left`。然而,在处理涉及频道访问的API请求时,关键的`is_user_channel_member`函数仅执行了类似`SELECT * FROM ChannelMember WHERE user_id = ? AND channel_id = ?`的查询。只要查询返回结果,系统即判定用户拥有权限。由于代码逻辑中未包含`AND is_active = True`的过滤条件,导致已被停用的用户仍然被视为有效成员。攻击者只需持有有效的会话Token(即使是低权限用户),即可通过API直接调用目标频道的读写接口,从而绕过前端界面的限制,非法获取私密对话内容或篡改数据。