Alpine Linux 在遭遇 RCE 攻击未遂后重建 GitLab
- 浏览次数 102
- 喜欢 0
10 月 20 日至 21 日,黑客试图利用 Alpine Linux 开发基础设施中的一个 GitLab 严重漏洞,促使该开源项目重建其 GitLab 服务器并重置所有密码,原因是担心可能已被攻陷。
这些攻击针对 CVE-2026-97229——一个最高严重性的远程代码执行缺陷,多次导致 GitLab 进程崩溃,部分尝试已接近成功。
尽管 Alpine Linux 未发现攻击者执行代码或篡改其软件包和发布版本的证据,但由于日志缺失且缺乏出站连接记录,它无法排除成功入侵的可能性。
"由于我们无法排除代码执行,而确认它所需的证据已不复存在,我们选择了更艰难的路——从零重建 GitLab 实例," Alpine Linux 团队解释道。
Alpine Linux 是一个小巧轻量的操作系统,被广泛用作运行应用和服务的 Docker 容器镜像的基础。
其 GitLab 实例托管开发仓库、代码审查和 CI 任务,包括用于生成 Alpine 软件包的 "aports" 构建配方。
这使其成为一个有价值的供应链目标,因为篡改其 GitLab 环境可能影响下游软件。
CVE-2026-97229 是 GitLab 的 CI/CD 正则表达式编译器 Onigmo(捆绑于 Ruby 中)中的一个最高严重性整数溢出漏洞,可允许未认证攻击者在服务器上执行任意代码。
GitLab 于 10 月 12 日披露该缺陷并提供修复,警告称攻击者可在特定条件下通过在 CI/CD 流水线配置中提交特制的正则表达式来触发它。
Alpine 最初安装的是 GitLab 19.3.4,而非已修补的 19.3.5 版本。后来升级到 19.3.6 也未能堵住该缺陷,因为修复需要对 Ruby 打补丁,而 GitLab 官方软件包捆绑了 Ruby,但 Alpine 的自定义容器镜像并未包含。
10 月 20 日至 21 日,攻击者提交了针对该缺陷的恶意 CI 配置,导致八次 worker 崩溃;其中四次部分成功,但似乎没有一次完全得手。
Alpine Linux 团队发现攻击者下载了其 GitLab 容器镜像,暗示他们可能一直在准备一次供应链攻击。
经调查,Alpine 发现截至 10 月 27 日,仓库提交、软件包或发布版本均未被篡改。此外,签名密钥不可能被泄露,因为它们并未存储在 GitLab 服务器上。
如果利用成功,可能泄露的信息包括用户详情、密码哈希、2FA 密钥、CI/CD 密钥、集成凭据和私有项目内容,不过上述内容均未被确认遭到入侵。
Alpine 建议用户重置 GitLab 密码,并拉取 10 月 27 日发布的 alpinelinux/gitlab:19.3.6 镜像,该镜像包含 Ruby 3.3.13 并修复了 CVE-2026-97229。