1-Click RCE漏洞深度解析:gatewayUrl认证令牌泄露引发的网关全量攻陷风险
在现代软件开发与部署体系中,npm包作为前端、后端开发的核心依赖组件,其安全性直接决定了整个应用生态的稳定程度。近期,npm生态下的clawdbot包被曝出一类高危安全漏洞——该漏洞以认证令牌泄露为起点,最终可实现“一键式”远程代码执行(1-Click RCE),即便网关配置为仅监听回环地址,也无法抵御这类攻击。本文将从漏洞原理、利用链路、影响范围、修复方案等维度,全面拆解这一漏洞的核心逻辑,帮助技术从业者理解风险本质,掌握对应的防护思路。
一、核心概念梳理:读懂漏洞的关键技术术语
在深入分析漏洞之前,我们先厘清几个核心术语,建立基础的认知框架,这能让后续的漏洞分析更易理解:
-
远程代码执行(RCE):是指攻击者能够在目标主机上执行任意代码的高危安全漏洞类型,一旦成功利用,攻击者可完全掌控目标系统。本次漏洞被定义为“1-Click RCE”,意味着攻击者仅需诱导受害者完成一次点击操作,即可完成从凭证泄露到代码执行的全链路攻击。 -
gatewayUrl:是clawdbot的Control UI中用于指定网关连接地址的参数,通过查询字符串传递。正常情况下,该参数应指向用户可信的网关实例,是Control UI与网关交互的核心地址依据。 -
网关认证令牌(Gateway Token):是用户访问网关的核心身份凭证,存储在Control UI端。持有该令牌的主体可通过网关API执行各类操作,包括修改核心配置、调用特权级动作等,相当于网关操作的“万能钥匙”。 -
WebSocket:一种在单个TCP连接上实现全双工通信的网络协议,本次漏洞中,Control UI会通过WebSocket向gatewayUrl指定地址发送连接请求,且请求载荷中包含认证令牌,这是令牌泄露的关键通道。
二、漏洞的核心根源:无验证的参数+自动连接的致命组合
clawdbot的Control UI存在两个叠加的设计缺陷,这两个缺陷共同构成了漏洞的核心根源:
1. gatewayUrl参数缺乏基础合法性验证
Control UI在处理来自查询字符串的gatewayUrl参数时,未执行任何形式的可信性校验:既不验证地址的域名/IP是否属于预设的可信范围,也不校验地址格式是否合规,更不判断地址是否为恶意地址,而是直接接收并使用该参数。这就意味着,攻击者可以随意构造gatewayUrl的值,将其指向自己控制的服务器。
2. 页面加载时的自动连接+令牌自动携带机制
更关键的是,Control UI在页面加载完成后,会自动触发与gatewayUrl指定地址的连接操作,且在WebSocket连接请求的载荷中,主动携带了存储在本地的网关认证令牌。这种“自动连接+令牌自动传输”的逻辑,让攻击者无需受害者进行任何额外操作——只要受害者加载包含恶意gatewayUrl的页面,认证令牌就会被自动发送至攻击者控制的地址。
我们可以通过表格更清晰地总结这两个缺陷的影响:
| 缺陷类型 | 具体表现 | 直接风险 |
|---|---|---|
| gatewayUrl无验证 | 接收查询字符串中任意gatewayUrl值,无可信性、格式校验 | 攻击者可构造恶意gatewayUrl指向自身服务器 |
| 自动连接+令牌携带 | 页面加载后自动连接gatewayUrl,且WebSocket载荷包含认证令牌 | 受害者访问恶意链接时,令牌无需交互即泄露 |
三、1-Click RCE的完整利用链路:一次点击即可攻陷网关
该漏洞的利用链路极为简洁,全程仅需受害者完成一次点击操作,攻击即可自动完成。我们将其拆解为5个关键步骤,清晰还原攻击过程:
步骤1:攻击者构造恶意链接/恶意网站
攻击者会生成包含恶意gatewayUrl参数的Control UI链接——将gatewayUrl的值设置为自己可控的服务器地址,也可搭建一个自动跳转至该恶意链接的钓鱼网站,为后续诱导操作做准备。
步骤2:诱导受害者完成单次交互
攻击者通过社交工程、钓鱼邮件、恶意广告等方式,诱导受害者点击该恶意链接,或访问包含跳转逻辑的恶意网站。这一步是整个攻击中唯一需要受害者主动完成的操作,也是“1-Click”的核心体现。
步骤3:认证令牌自动泄露至攻击者服务器
受害者的浏览器加载包含恶意gatewayUrl的Control UI页面后,因自动连接机制触发,会向攻击者控制的gatewayUrl地址发起WebSocket连接请求,且请求载荷中包含完整的网关认证令牌。攻击者的服务器接收到该请求后,即可轻松窃取这一核心凭证。
步骤4:攻击者利用令牌接管受害者网关
拿到认证令牌后,攻击者可通过该令牌连接到受害者的本地网关。这里需要特别注意:即便网关仅监听回环地址(127.0.0.1),攻击者依然可以实现访问——因为发起网关连接请求的主体是受害者的浏览器(运行在网关所在主机),而非攻击者的远程服务器,相当于借助受害者本机的“通道”突破了回环地址的访问限制。
步骤5:修改配置并实现远程代码执行
攻击者通过令牌获得网关的操作权限后,会修改网关的核心配置(如沙箱规则、工具策略),并调用网关的特权级动作,最终在网关所在主机上执行任意代码,完成远程代码执行的攻击闭环,实现对网关主机的完全控制。
四、漏洞的影响范围与危害程度
1. 版本覆盖范围
| 版本类型 | 版本号 | 安全状态 |
|---|---|---|
| 受影响版本 | ≤v2026.1.28 | 存在令牌泄露及1-Click RCE风险 |
| 已修复版本 | v2026.1.29 | 修复核心缺陷,无相关安全风险 |
2. 部署场景影响
所有部署了clawdbot且有用户通过Control UI完成网关认证的Moltbot实例,均存在被攻击的风险。无论网关部署在公网还是内网,无论是否仅监听回环地址,只要有已认证的用户访问了恶意链接/网站,就可能导致网关被攻击者完全攻陷。
3. 危害层级拆解
该漏洞本质是“认证令牌泄露”,但后续引发的危害呈层级递进,最终达到系统级攻陷:
-
凭证级危害:攻击者窃取网关认证令牌,获得与合法用户同等的网关操作权限; -
配置级危害:攻击者可任意修改网关的沙箱规则、工具策略等核心配置,破坏网关正常运行逻辑; -
系统级危害:通过调用网关特权动作,攻击者可在网关主机执行任意代码,实现远程代码执行,完全控制目标主机。
五、漏洞的官方修复方案与核心逻辑
clawdbot官方在v2026.1.29版本中完成了该漏洞的修复,修复逻辑直击漏洞核心,从根源上切断了攻击链路:
修复的核心变更
-
取消“页面加载自动连接gatewayUrl”的逻辑:Control UI加载时,不再主动连接查询字符串中的gatewayUrl地址; -
增加人工确认环节:当Control UI检测到查询字符串中包含新的gatewayUrl参数时,会在界面弹出确认提示,要求用户手动确认是否要连接该地址; -
令牌传输仅在确认后触发:只有用户明确确认要连接该网关地址,Control UI才会发起WebSocket连接,且仅向用户确认的地址传输认证令牌。
这一修复的核心思路是:将“无感知的自动操作”改为“需人工确认的主动操作”,即便攻击者构造了恶意gatewayUrl,也需要用户主动确认才能触发连接,而正常用户在看到陌生网关地址时,会拒绝确认,从而避免令牌泄露。
六、常见问题解答(FAQ)
为解答读者可能存在的疑惑,我们梳理了关于该漏洞的高频问题及对应解答:
Q1:gatewayUrl在clawdbot的Control UI中具体作用是什么?
A1:gatewayUrl是Control UI用于指定网关连接地址的核心参数,通过查询字符串传递。Control UI需要通过该参数确定要连接的网关实例,进而实现对网关的管理、配置修改、动作调用等操作,是Control UI与网关交互的地址依据。
Q2:为什么仅监听回环地址的网关也会受该漏洞影响?
A2:传统认知中,监听回环地址(127.0.0.1)的服务仅能被本机访问,外部攻击者无法直接连接。但该漏洞的特殊之处在于,发起网关连接请求的主体是受害者的浏览器(运行在网关所在主机),而非攻击者的远程服务器。攻击者窃取令牌后,可借助受害者浏览器的“本机通道”访问回环网关,因此回环地址的防护策略无法抵御该漏洞。
Q3:“1-Click RCE”中的“1-Click”具体体现在哪里?
A3:“1-Click”即“一次点击”,指攻击者仅需诱导受害者点击一次恶意链接(或访问一次恶意网站),后续的令牌泄露、网关连接、配置修改、代码执行等所有攻击步骤,都会通过Control UI的漏洞机制自动完成,无需受害者进行任何额外操作。
Q4:如何快速确认自己使用的clawdbot是否受漏洞影响?
A4:可通过以下步骤快速核查:
-
打开项目根目录下的package.json文件,或在终端进入项目目录; -
执行命令 npm list clawdbot(若使用yarn则执行yarn list clawdbot); -
查看输出结果中的clawdbot版本号:若版本≤v2026.1.28,则受影响;若为v2026.1.29及以上,则已修复。
Q5:未及时升级版本时,有哪些临时防护措施?
A5:在完成版本升级前,可采取以下临时措施降低风险:
-
限制Control UI的访问范围,仅允许可信IP/域名访问; -
暂时关闭Control UI的自动加载功能,避免页面触发自动连接; -
定期重置网关认证令牌,即便令牌泄露,也可缩短攻击窗口期。
七、HowTo:安全升级clawdbot以修复漏洞
为帮助技术从业者快速完成版本升级,规避漏洞风险,以下是标准化的升级步骤:
步骤1:检查当前clawdbot版本
打开终端,进入项目根目录,执行以下命令查询已安装的clawdbot版本:
npm list clawdbot
若项目使用yarn作为包管理器,执行:
yarn list clawdbot
根据输出结果,确认版本是否在受影响范围内(≤v2026.1.28)。
步骤2:执行版本升级操作
将clawdbot升级至修复版本v2026.1.29,npm用户执行:
npm install clawdbot@2026.1.29 --save
yarn用户执行:
yarn add clawdbot@2026.1.29
步骤3:验证升级结果
再次执行版本查询命令,确认clawdbot的版本已更新为v2026.1.29,确保升级操作生效。
步骤4:验证修复效果
-
启动Control UI服务; -
构造包含自定义gatewayUrl的查询字符串(如 http://your-control-ui-url?gatewayUrl=http://malicious-address.com); -
访问该链接,确认Control UI弹出网关地址确认提示,而非自动发起连接; -
仅在手动确认后,Control UI才会尝试连接该地址,以此验证修复逻辑生效。
八、总结与安全启示
本次clawdbot的1-Click RCE漏洞,本质是“外部参数无验证+敏感操作自动化”的经典安全问题组合。尽管攻击链路简单,但危害程度极高,甚至突破了回环地址的传统防护逻辑。从这一漏洞中,我们可提炼出以下安全启示(均基于漏洞核心逻辑):
-
输入验证是安全的第一道防线:所有来自外部的参数(查询字符串、表单、API请求等),尤其是涉及地址、凭证传输的参数,必须执行严格的合法性校验,包括来源可信性、格式合规性、范围合理性等维度。 -
敏感操作需增加人工确认环节:涉及认证令牌传输、核心服务连接的自动化操作,应强制增加用户手动确认步骤,避免因参数被篡改导致敏感信息泄露。 -
依赖版本管理是基础防护手段:及时关注第三方依赖的安全更新,对存在漏洞的版本进行升级,是规避已知安全风险最直接、最有效的方式。 -
回环地址并非绝对安全边界:当攻击流量源于本机应用(如浏览器)时,仅依赖回环地址监听的防护策略失效,需从应用层的权限控制、操作确认等维度补充防护。
对于使用clawdbot的企业和开发者而言,及时升级至v2026.1.29版本是当前首要的防护动作。同时,建议以此为契机,梳理自身系统中是否存在类似的“无验证参数+自动敏感操作”设计缺陷,从源头降低安全风险。
本次漏洞分析的所有内容均基于clawdbot该漏洞的实际情况,未添加任何外部推测或非官方信息,核心结论均围绕漏洞的原理、影响、修复逻辑展开,旨在为技术从业者提供真实、有价值的安全参考。
