Alpine 分销商的开发者 Linux 他们披露了有关试图入侵 gitlab.alpinelinux.org 协作开发平台的信息,该平台用于开发 APK 包管理器、构建工具、基础设施组件和包构建脚本 (aports)。此次攻击利用了 GitLab 平台的一个漏洞,该漏洞是由 Ruby 正则表达式引擎中的整数溢出引起的。虽然没有发现成功入侵的证据或痕迹,但由于无法完全排除漏洞被成功利用的可能性,因此 GitLab 容器被认为可能已被入侵,其内容已从头开始完全重建,并启动了用户密码重置程序。
阿尔卑斯基础设施管理公司 Linux 未检测到任何第三方文件、可疑运行进程、异常 API 调用、设置或系统文件更改,也未检测到大规模数据提取常见的负载峰值。对 aports 代码库、软件包和发布文件的完整性分析,以及与外部构建服务器和开发人员系统中的副本进行比对验证,均未发现任何隐藏更改。
由于缺乏有关出站网络连接的信息、轮换期间删除某些日志(例如 cron 日志)以及 Web 服务器日志中缺乏足够的细节(成功使用不会导致崩溃的漏洞利用程序不会反映在日志中),因此无法完全排除攻击成功的可能性。
如果攻击成功,攻击者可以访问包含所有 GitLab 用户数据(密码哈希值、电子邮件等)的数据库。 IP地址 等等),来自持续集成系统的环境变量和令牌、双因素身份验证码、个人访问令牌的哈希值、私有存储库的内容以及关于问题的机密讨论。用于在受攻击服务器上为版本和软件包生成数字签名的密钥。 服务器 未被储存。
首次尝试利用该漏洞的记录时间是10月20日和21日。攻击者注册了一个GitLab账户,并试图将修改后的设置发送到持续集成系统。日志记录了八次GitLab进程崩溃,其中四次与此次漏洞利用有关。漏洞利用的第一阶段成功,但第二阶段失败。
攻击发生时,容器运行的是存在漏洞的 GitLab 19.3.4 版本,该版本已于 10 月 22 日更新至 GitLab 19.3.6。然而,Alpine 管理员未能考虑到该漏洞的修复程序仅包含在官方的 GitLab 19.3.6 安装包中,而非 GitLab 代码本身,因为该漏洞存在于 Ruby 工具链中。因此,容器继续使用旧版本的 Ruby 工具链,导致该漏洞未被修复。
剩余的漏洞直到10月26日才被发现。日志分析显示,攻击者在10月25日和26日恢复了攻击。10月27日,第三方对GitLab的访问受到限制。10月28日,GitLab的内容被重建,所有密码被重置(用户需要通过忘记密码恢复流程设置新密码),访问密钥也被更换。10月29日,更新后的GitLab被重新部署。 服务器 已投入使用。由该项目维护的 Docker 容器 alpinelinux/gitlab 直到 10 月 27 日仍然存在漏洞。
来源: opennet.ru
