逾1.2万个Flowise实例暴露在CVSS 10.0远程代码执行漏洞攻击之下:用TaoToken统一Key加固Node.js服务配置
1. 当 1.2 万个 Flowise 实例变成“公开靶场”Flowise 是一个基于 Node.js/JavaScript 的开源低代码平台用来拖拽式搭建 LLM 工作流、Agent 和 RAG 应用很多团队拿它当内部 AI 中台的门面。问题在于它默认监听端口、默认允许自定义节点而 CustomMCP 节点会直接解析用户传入的mcpServerConfig字符串并执行其中的 JavaScript——没有沙箱、没有白名单、没有权限降级。CVE-2025-59528 的 CVSS 评分是 10.0意味着攻击者只要拿到一个 API 令牌就能在服务器上调用child_process和fs读文件、执行命令、把环境变量里的密钥全部带走。VulnCheck 披露的攻击活动来自一个 Starlink IP扫描和利用尝试一直在持续。更麻烦的是这是 Flowise 第三个被野外利用的漏洞前两个分别是 CVE-2025-8943CVSS 9.8和 CVE-2025-26319CVSS 8.9。超过 1.2 万个暴露在互联网上的实例等于给攻击者准备了一个巨大的候选池。修复动作本身不复杂——升级到 npm 包的 3.0.6 版本——但真正让安全团队头疼的是漏洞修完了散落在settings.json、.env、容器环境变量里的 OpenAI、Anthropic、各类模型 API Key 还在原地。一个 RCE 就能把这些凭据全部读走然后攻击者拿着你的 Key 去刷别人的账单。所以这篇不是单纯讲“升级版本”而是把两件事绑在一起做先把 Flowise 的暴露面收掉再把模型调用的凭据入口从服务里抽出来统一走 TaoToken 的 Key。这样即使某台 Flowise 实例被攻破攻击者拿到的也只是一个受限的、可随时吊销的统一 Key而不是你所有模型供应商的原始凭据。2. 为什么用 TaoToken 收敛 Flowise 的 Key 入口Flowise 的节点配置里模型连接信息通常以两种形式存在一种是在 UI 里填的 Credential底层落到数据库另一种是直接在 CustomMCP 或自定义工具的代码里硬编码process.env.OPENAI_API_KEY。前者一旦数据库被拖走就全泄露后者一旦代码仓库或容器镜像泄露就全泄露。RCE 漏洞利用成功后攻击者能直接读process.env两种形式都跑不掉。TaoToken 在这里的角色是一个统一的模型调用入口。你可以在 TaoToken 控制台创建 API Key然后把 Flowise 里所有模型节点的 base URL 指向https://taotoken.net/apiKey 统一用 TaoToken 签发的那一个。这样做有三个实际好处第一Flowise 服务里只存在一个 Key泄露后的爆炸半径可控第二你可以在 TaoToken 侧按项目、按环境签发不同的 Key出问题直接吊销某一个不影响其他服务第三模型切换、额度查看、调用日志都在一个地方不用在 Flowise 的 Credential 列表里翻来翻去。需要说清楚的是TaoToken 不是用来替代 Flowise 的它只负责模型调用的鉴权和转发。Flowise 该升级还是要升级该关端口还是要关端口。统一 Key 是纵深防御里的一层不是漏洞修复的替代品。3. 可复制的配置骨架settings.json 与 config.tomlFlowise 的配置入口在不同部署方式下不一样。npm 全局安装时配置通常在项目根目录的settings.json或通过环境变量注入Docker 部署时常用config.toml或docker-compose.yml的 environment 段。下面给两份可直接改的骨架重点是把模型调用的 base URL 和 Key 收敛到 TaoToken。先看settings.json的写法。Flowise 读取模型凭据时很多节点会走环境变量所以这里用process.env的方式注入避免把 Key 写死在 JSON 里{ database: { type: sqlite, path: ./flowise.db }, apiKeys: { openai: { baseURL: https://taotoken.net/api, apiKey: ${TAOTOKEN_API_KEY} }, anthropic: { baseURL: https://taotoken.net/api, apiKey: ${TAOTOKEN_API_KEY} } }, security: { disableCustomMCP: true, allowedNodeTypes: [llm, chain, tool, retriever] } }这里有两个关键点。baseURL指向 TaoToken 的 API 地址Flowise 发出的模型请求会先到 TaoToken再由 TaoToken 转发到实际模型。disableCustomMCP是临时缓解措施如果你暂时没法升级到 3.0.6先把 CustomMCP 节点禁掉能挡住这个特定漏洞的利用路径。allowedNodeTypes是白名单思路只放业务真正需要的节点类型。再看config.toml适合 Docker 或需要版本化管理的场景[server] port 3000 host 127.0.0.1 [database] type postgres connection_string ${DATABASE_URL} [models] provider taotoken base_url https://taotoken.net/api api_key ${TAOTOKEN_API_KEY} timeout 120 [security] disable_custom_mcp true enable_rate_limit true rate_limit_window 60 rate_limit_max 100host 127.0.0.1这一行很重要。很多暴露在互联网上的 Flowise 实例是因为直接监听0.0.0.0并且没有前置反向代理做鉴权。如果你必须对外提供服务至少在前面放一层 Nginx 或网关把/api/v1/之外的路径全部挡掉。环境变量文件.env只放一个 KeyTAOTOKEN_API_KEYsk-你的TaoToken密钥 DATABASE_URLpostgres://user:passlocalhost:5432/flowise注意不要把.env提交到 Git也不要在 Docker 镜像里COPY .env。用docker run --env-file或编排工具的 secret 机制注入。4. 验证请求与暴露面自查配置改完后先验证 TaoToken 这条链路是通的。用 curl 直接打 TaoToken 的 API确认 Key 有效、模型列表能拉到curl -s https://taotoken.net/api/v1/models \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ | head -c 500如果返回模型列表的 JSON说明 Key 和网络都正常。接着在 Flowise 里建一个最小的 LLM 节点base URL 填https://taotoken.net/apiKey 填同一个发一条测试消息。Flowise 的日志里应该能看到请求发往 TaoToken而不是直接发往模型供应商。然后做暴露面自查。先确认 Flowise 版本npm list flowise --depth0如果版本低于 3.0.6立刻升级npm install -g flowise3.0.6再检查监听地址和防火墙规则ss -tlnp | grep 3000如果看到0.0.0.0:3000说明所有网卡都能访问。改成127.0.0.1:3000或者用防火墙只放行内网网段。Docker 部署的话检查docker-compose.yml里的 ports 映射不要写3000:3000改成127.0.0.1:3000:3000。最后扫一遍代码和配置里有没有硬编码的 Keygrep -rn sk- ./ --include*.json --include*.js --include*.toml --include*.env把命中的地方全部替换成${TAOTOKEN_API_KEY}的引用形式。这一步做完即使某台实例被 RCE攻击者能拿到的也只是一个可吊销的统一 Key。5. 本篇常见错排查升级后 CustomMCP 节点报错3.0.6 对mcpServerConfig的解析做了校验之前能跑的配置如果包含动态拼接的 JavaScript 字符串会被拒绝。检查节点配置把mcpServerConfig改成纯 JSON 字符串不要在里面写函数或表达式。TaoToken 返回 401先确认TAOTOKEN_API_KEY环境变量在 Flowise 进程里能读到。Docker 部署时docker exec -it 容器名 env | grep TAOTOKEN看一下。如果环境变量没注入Flowise 会拿空字符串去请求自然 401。Flowise 仍然直连模型供应商有些节点的 base URL 是在 UI 的 Credential 里单独填的不会读settings.json。需要到 Flowise 的 Credentials 页面把每个模型凭据的 base URL 手动改成https://taotoken.net/api。改完后重启 Flowise 让缓存失效。端口改了但外网还能访问检查是否有反向代理或负载均衡把流量转进来了。ss -tlnp只能看到本机监听看不到上游转发。用curl -I http://你的公网IP:3000从外部验证一次如果还能通说明代理层没配好。升级 npm 包后数据库迁移失败Flowise 大版本升级可能带 schema 变更。升级前先备份flowise.db或 Postgres 数据库升级后如果启动报迁移错误回滚数据库再查 release notes。6. 把 Key 收口把端口收口漏洞修复和凭据收敛是两条线但要在同一个维护窗口里做完。升级到 3.0.6 解决的是代码执行路径TaoToken 统一 Key 解决的是凭据泄露后的爆炸半径。两件事都做完Flowise 实例即使暴露攻击者能拿到的也只是一个受限入口。如果你还在用多个模型供应商的原始 Key 散落在各个节点里建议先去 TaoToken 控制台建一个项目专用的 Key把 Flowise 的模型调用切过去。接入文档里有 base URL 和鉴权头的完整说明照着改一遍比事后追查泄露来源省事得多。

相关新闻

AI Skills开发实战:从提示词到可复用技能包的正确写法

AI Skills开发实战:从提示词到可复用技能包的正确写法

不用急着往下翻,先问你一句:你写的那个Skills文件,是真的让AI“会用”,还是只是把你平时用的一段提示词改了个文件名?我说的就是那些放在.cursor/skills、.claude/skills目录里,或者通过GitHub项目分发给别…

2026/9/27 21:03:28 阅读更多 →
FreeRTOS深度移植与实战避坑指南:STM32+FREERTOS+LVGL+LWIP

FreeRTOS深度移植与实战避坑指南:STM32+FREERTOS+LVGL+LWIP

1. 这不是“教程”,是我在STM32项目里踩了三年坑后,把FreeRTOS从黑盒变成透明工具的真实记录你搜“FreeRTOS入门”,页面上全是“5分钟学会”“保姆级教学”“无脑收藏”——但现实是:你照着步骤在Keil里点完“Add RTOS”&#xff…

2026/9/27 21:03:08 阅读更多 →
最新版 Trae CN C盘彻底迁移方案:用 TaoToken 统一 Key 通道配合 robocopy 与软链接释放系统盘

最新版 Trae CN C盘彻底迁移方案:用 TaoToken 统一 Key 通道配合 robocopy 与软链接释放系统盘

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/27 21:02:41 阅读更多 →

最新新闻

蜂窝板生产线技术革新

蜂窝板生产线技术革新

在现代轻量化复合材料的制造版图中,蜂窝板生产线已从传统的机械拼装,彻底蜕变为融合多项前沿科技的智能化复合系统。如何在高速度、连续化的作业中确保复合精度与零缺陷,正引领着全线技术的硬核升级。 现代生产线的核心技术升级首要体现在智能…

2026/9/27 22:53:49 阅读更多 →
万网制作网站怎么样?3个免费工具破解备案与安全难题

万网制作网站怎么样?3个免费工具破解备案与安全难题

万网制作网站怎么样?3个免费工具破解备案与安全难题 备案流程一头雾水?别慌,这不仅是新手建站最大的坑,更是网站上线前最容易被忽视的安全隐患。很多用万网(现阿里云)做站的老板,以为交了钱、填了资料就万事大吉,结果网站做出来了,却因为安全配置不…

2026/9/27 22:53:49 阅读更多 →
(三)数据结构与算法——经典算法

(三)数据结构与算法——经典算法

🗂️ 一、 哈希表:O(1) 神话的缔造者与冲突解决1. 哈希表的原理是什么?哈希表(Hash Table)是一种通过哈希函数把键(key)映射到数组下标,从而在平均 O(1) 时间内完成查找、插入、删除…

2026/9/27 22:53:49 阅读更多 →
GMSL开发加解串配置介绍

GMSL开发加解串配置介绍

开发介绍 本文主要介绍在 orin nx 平台上使用加串器 MAX96717 和解串器 MAX96724 进行视频流数据传输,记录开发过程中遇到的问题,以及相关软件 GMSL_SerDes_Public_GUI 的生成配置方法,和jetson orin的设备树配置。适合第一次接触 GMSL 的朋…

2026/9/27 22:53:48 阅读更多 →
数据安全:“分类分级” or “分级分类” ?

数据安全:“分类分级” or “分级分类” ?

或许很少人去思考过这样一个问题,在数据安全中为什么分类在分级前面?这二者有何区别,又有何联系?先说判断:分类是为分级服务的,它的终点是完成数据识别。GB/T 43697-2024《数据安全技术 数据分类分级规则》…

2026/9/27 22:53:48 阅读更多 →
【C++三方组件】cpr:最像 Python requests 的 HTTP 客户端

【C++三方组件】cpr:最像 Python requests 的 HTTP 客户端

【C三方组件】cpr:最像 Python requests 的 HTTP 客户端 【摘要】:cpr 在 libcurl 之上提供面向 C 的 HTTP 客户端接口,用参数对象描述请求,用 Response 接收结果。本文介绍它减少了哪些配置和资源管理代码,再通过参数…

2026/9/27 22:52:48 阅读更多 →

日新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/27 0:00:34 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/27 0:00:34 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/27 0:00:34 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/27 0:00:34 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/27 0:00:34 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/27 0:00:34 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/27 9:12:14 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/25 20:29:31 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/26 22:52:30 阅读更多 →