在恶意命令行界面冒充合法 Bitwarden 工具后,近两个小时的漏洞窗口使 GitHub 用户面临潜在的接管。

4 月 22 日,Bitwarden 命令行界面的恶意版本出现在 npm 上,官方包名称为 @bitwarden/cli@2026.4.0。在 93 分钟内,任何通过 npm 拉取 CLI 的人都会收到合法工具的后门替代品。
Bitwarden 检测到了这一漏洞,删除了该软件包,并发表声明称,没有发现任何证据表明攻击者访问了最终用户库数据或受损的生产系统。
安全研究公司 JFrog 分析了恶意负载,发现它对 Bitwarden 金库没有特别兴趣。它的目标是 GitHub 令牌、npm 令牌、SSH 密钥、shell 历史记录、AWS 凭证、GCP 凭证、Azure 凭证、GitHub Actions 密钥和 AI 工具配置文件。
这些凭证控制着团队如何构建、部署和访问其基础设施。
目标秘密/数据类型
它平时居住的地方
为什么它在运营上很重要
GitHub 代币
开发人员笔记本电脑、本地配置、CI 环境
可以通过自动化实现存储库访问、工作流程滥用、秘密列表和横向移动
npm 代币
本地配置、发布环境
可用于发布恶意包或改变发布流程
SSH 密钥
开发机器,构建主机
可以开放对服务器、内部存储库和基础设施的访问
壳牌历史
本地机器
可以揭示粘贴的机密、命令、内部主机名和工作流程详细信息
AWS 凭证
本地配置文件、环境变量、CI 机密
可以公开云工作负载、存储和部署系统
GCP 凭据
本地配置文件、环境变量、CI 机密
可以公开云项目、服务和自动化管道
Azure 凭据
本地配置文件、环境变量、CI 机密
可以公开云基础设施、身份系统和部署路径
GitHub Actions 的秘密
CI/CD 环境
可以访问自动化、构建输出、部署和下游机密
AI 工具/配置文件
项目目录、本地开发环境
可以公开 API 密钥、内部端点、模型设置和相关凭据
Bitwarden 为超过 50,000 家企业和 1000 万用户提供服务,其自己的文档将 CLI 描述为一种“强大、功能齐全”的访问和管理保管库的方式,包括使用环境变量进行身份验证的自动化工作流程。
Bitwarden 将 npm 列为已经熟悉注册表的用户最简单且首选的安装方法。自动化使用、开发人员机器安装和官方 npm 分发的结合使 CLI 恰好位于高价值基础设施秘密往往存在的地方。
JFrog 的分析显示,恶意包将预安装挂钩和 bw 二进制入口点重新连接到加载器,该加载器获取 Bun 运行时并启动混淆的有效负载。这种妥协会在安装时和运行时触发。
组织可以运行后门 CLI,而无需触及任何存储的密码,同时恶意软件会系统地收集管理其 CI 管道、云帐户和部署自动化的凭据。
安全公司 Socket 表示,此次攻击似乎利用了 Bitwarden CI/CD 管道中受损的 GitHub Action,这与 Checkmarx 研究人员一直在跟踪的模式一致。
Bitwarden 证实,该事件与更广泛的 Checkmarx 供应链活动有关。
信任瓶颈
Npm 构建了其可信发布模型来准确解决此类风险。
通过使用基于 OIDC 的 CI/CD 身份验证替换长期存在的 npm 发布令牌,系统消除了攻击者用来劫持注册表版本的最常见路径之一,并且 npm 建议可信发布并将其视为向前迈出的有意义的一步。
更难的表面是发布逻辑本身,例如调用发布步骤的工作流和操作。 Npm 自己的文档建议了 OIDC 之外的控制措施,例如具有手动审批要求的部署环境、标签保护规则和分支限制。
信任链中的层
它应该保证什么
仍然会出现什么问题
源代码库
预期的代码库存在于预期的存储库中
攻击者可能永远不需要直接更改主代码库
CI/CD 工作流程
自动从存储库构建和发布
如果受到损害,它可以生成并发布恶意工件
GitHub Actions / 发布逻辑
执行构建和发布软件的步骤
中毒的操作或滥用的工作流程可能会将合法的发布路径变成恶意的
OIDC 可信发布
用短期的基于身份的身份验证替换长期的注册表令牌
它证明授权工作流发布了包,但并不证明工作流本身是安全的
npm 官方包路线
以预期的包名称分发软件
如果官方发布路径遭到破坏,用户仍可能收到恶意软件
开发机/CI 运行器
消耗官方包
安装时或运行时恶意软件可以收获 lo