Laravel Lang 遭供应链攻击:Git 标签被重写植入凭证窃取木马,700+ 版本受影响

近日,流行的 Laravel 第三方本地化软件包 Laravel Lang 遭遇了一起复杂的供应链攻击。攻击者通过滥用 GitHub 的版本标签功能,将恶意代码注入到多个受信任的软件包中,导致全球大量开发者面临凭证泄露风险。

安全公司 StepSecurity、Aikido Security 和 Socket 联合发出警告,指出此次攻击并非通过发布新版本实现,而是重写了现有的 Git 标签,使其指向包含恶意负载的提交。

攻击手法:隐蔽的“标签劫持”

此次攻击的高明之处在于其隐蔽性:

  • 非新包投放:攻击者没有创建新的恶意版本,而是入侵了具有组织范围推送权限的账户。
  • 标签重写:攻击者修改了 laravel-lang/langlaravel-lang/http-statuseslaravel-lang/attributes 等仓库中数百个历史版本的 Git 标签,使其指向攻击者控制的恶意提交。
  • 自动加载执行:当开发者通过 Composer 安装这些看似合法的版本时,恶意文件 src/helpers.php 会被自动加载并执行。

据估算,约有 700 个历史版本可能受到影响,涉及 233 个被明确标记为恶意的版本。

恶意负载:全平台凭证窃取器

注入的恶意代码充当“投放器”,从命令与控制服务器 flipboxstudio[.]info 下载第二阶段的 PHP 负载。该负载是一个功能强大的跨平台凭证窃取程序,针对 Linux、macOS 和 Windows 系统。

1. 窃取目标

恶意软件旨在提取几乎所有类型的敏感信息:

  • 云与基础设施:AWS 密钥、Kubernetes 机密、Vault 令牌、CI/CD 机密、.env 配置文件。
  • 开发工具:Git 凭证、SSH 私钥、GitHub/GitLab 令牌。
  • 个人数据:浏览器数据(Chrome/Brave/Edge)、密码管理器、VPN 配置、加密货币钱包及恢复短语。
  • 其他服务:Slack 令牌、Stripe 机密、数据库凭证、JWT。
Laravel Lang 遭供应链攻击:Git 标签被重写植入凭证窃取木马,700+ 版本受影响插图

2. Windows 特有组件:DebugElevator

在 Windows 系统上,PHP 负载会释放一个名为 “DebugElevator” 的嵌入式可执行文件。

  • 功能:专门针对 Chromium 内核浏览器,利用 App-Bound Encryption 密钥解密存储的登录凭证。
  • AI 开发痕迹:研究人员在 PDB 路径中发现了 claude 字样(C:\Users\Mero\...\claude\Chromium-DebugElevator\...),暗示攻击者可能使用 AI 助手协助开发了该恶意软件。

应急响应与建议

Packagist 已迅速响应,删除了恶意版本并暂时下架了受影响的软件包。但对于已经安装或更新了相关依赖的项目,风险依然存在。

Laravel Lang 遭供应链攻击:Git 标签被重写植入凭证窃取木马,700+ 版本受影响插图1

建议开发者立即采取以下措施:

  1. 审查依赖版本:检查项目中 laravel-lang/* 系列包的版本,确认是否处于受影响范围。
  2. 轮换所有凭证:假设本地环境已失陷,立即轮换 AWS 密钥、Git 令牌、SSH 密钥、数据库密码及任何存储在 .env 中的敏感信息。
  3. 检查入侵指标 (IoC)
    • 检查系统日志中是否有向 flipboxstudio[.]info 发起的出站连接。
    • 扫描系统中是否存在异常的 PHP 进程或 %TEMP% 目录下的可疑可执行文件。
  4. 更新软件包:等待官方发布安全修复版本后,立即更新到最新的干净版本。
  5. 启用锁定文件:确保使用 composer.lock 文件,并验证其哈希值,以防止意外拉取被篡改的标签。

Laravel Lang 攻击事件再次敲响了供应链安全的警钟。它表明,即使源代码仓库本身看似安全,底层的版本控制系统(如 Git 标签)若缺乏严格保护,也可能成为攻击者的突破口。

对于开发者而言,不仅要关注代码本身的安全性,还需对依赖管理保持警惕,定期审计第三方库,并遵循最小权限原则保护 CI/CD 凭证。在 AI 辅助编程日益普及的今天,攻击者也在利用新技术提升恶意软件的开发效率,防御手段必须随之进化。