开源多智能体编排框架 PraisonAI 被披露 AgentOS 部署面缺少鉴权,编号 CVE-2026-57116,CVSS 3.1 评分 9.8。任何能访问到实例的人,不需要令牌,就能通过 chat 路由直接驱动已部署的智能体。更值得注意的是时间线:同一个鉴权缺口此前已经修过一次,修复并不彻底。
事件概述
按 GitHub 安全公告 GHSA-892r-p3jq-jp24 的描述,受影响版本为 4.2.1 至 4.6.58,修复版本 4.6.59。问题出在 AgentOS 的 FastAPI 部署面:chat 路由直接把请求内容交给 agent.chat(request.message),中间没有有效的鉴权判断。
公告给出的验证结论很直接:完全不带认证信息的请求会被执行,带错误 bearer 令牌的请求同样会被执行。也就是说,鉴权中间件要么没装上,要么装了但不生效。
技术细节
同一个鉴权缺口被报第二次,说明第一次只覆盖了某一条路径:公告确认当前主线与 CVE-2026-40151(GHSA-pm96-6xpr-978x)之后的版本仍未鉴权。
同批还有多个相关问题:
- CVE-2026-57146(7.5):A2U 事件流订阅。GHSA-f292-66h9-fpmf 声称未认证的 A2U 事件流已在 4.5.115 修复,但当前的 CLI 入口直接调用 create_a2u_routes(app),既不暴露 –api-key,也不安装通用的 API Key 中间件,更不会为 A2U 生成令牌
- 关键代码逻辑:create_a2u_routes() 只在 A2U_AUTH_TOKEN 环境变量已存在时才强制鉴权;变量缺失时,_authenticate_request() 返回 None,被当作”鉴权已关闭”处理。这是典型的默认放行写法
- CVE-2026-57114:4.5.126 至 4.6.58 可被用于探测内网服务
- CVE-2026-56840、CVE-2026-57117、CVE-2026-56832:均为 8.8
最终把 A2U 问题修掉的是 4.6.61 版本,比 AgentOS 那条线晚了一个版本号。升级时如果只跟到 4.6.59,A2U 事件流仍然是敞开的。
影响评估
危害不在于”能读到一些元数据”。公告点得很清楚:在 AgentOS 用工具包装智能体的部署里,一个能访问到的匿名客户端可以驱动这些智能体,连带触达它们持有的私有上下文、记忆、已接入的 API,以及按调用计费的模型。工具型智能体本身具备执行能力,”匿名调用 chat 路由”实质上是把这些能力开放给任何扫到这个端口的人。
修复建议
- 升级到 4.6.61 及以上。只升到 4.6.59 会漏掉 A2U 事件流那条线
- 不要依赖应用层默认配置。在反向代理或网关层对 AgentOS 的所有路由强制鉴权,未带令牌一律拒绝
- 部署前显式设置 A2U_AUTH_TOKEN,不要让”变量缺失等于关闭鉴权”的默认行为生效
- 审计历史访问日志:AgentOS 实例若曾公网可达,检查是否存在无令牌或异常 bearer 的 chat 调用,以及由此产生的异常模型计费
- 对智能体持有的云凭据、API Key 做轮换,工具型智能体的权限按最小必要收敛
同一个鉴权缺口被报两次、修两个版本号,这是 AI 应用框架当下的通病:功能迭代速度远快于安全设计,鉴权被当成”以后再加”的可选项。对使用者来说,把边界放到应用层之外,比指望每个版本都修对更可靠。