Разработчики дистрибутива Alpine Linux раскрыли информацию о попытках взлома платформы совместной разработки gitlab.alpinelinux.org, на которой велась работа над пакетным менеджером APK, сборочными инструментами, компонентами инфраструктуры и скриптами сборки пакетов (aports). Атака была совершена через эксплуатацию уязвимости в платформе GitLab, вызванной целочисленным переполнением в движке регулярных выражений языка Ruby. Доказательств и следов успешного взлома найти не удалось, но так как полностью исключить успешную эксплуатацию уязвимости не представляется возможным, контейнер с GitLab был признан потенциально скомпрометированным и его содержимое полностью перестроено с нуля, а у пользователей инициирована процедура смены паролей.
Администраторы инфраструктуры Alpine Linux не выявили появления сторонних файлов, подозрительных запущенных процессов, необычных обращений к API, изменений настроек и системных файлов, а также скачков нагрузки, свойственных массовому извлечению данных. В ходе анализа целостности репозитория aports, пакетов и файлов с релизами, а также их сверки с копиями с внешних сборочных серверов и систем разработчиков, скрытых изменений не выявлено.
Полностью исключить успешное проведение атаки не позволяет отсутствие информации об исходящих сетевых соединениях, удаление некоторых логов при ротации (например, лога cron-а) и отсутствие должной детализации в логах web-сервера (успешное применение эксплоита, не приводящее к аварийному завершению, не отражается в логе). В случае успешной атаки, злоумышленники могли получить доступ к БД с данными о всех пользователях GitLab (хэши паролей, email, IP-адреса и т.п.), переменным окружения и токенам из систем непрерывной интеграции, кодам двухфакторной аутентификации, хэшам персональных токенов доступа, содержимому приватных репозиториев и конфиденциальным обсуждениям проблем. Ключи для формирования цифровых подписей к релизам и пакетам на атакованном сервере не хранились.
Первые попытки эксплуатировать уязвимость были зафиксированы 20 и 21 октября. Атакующий зарегистрировал учётную запись в GitLab и пытался отправить модифицированные настройки системы непрерывной интеграции. В логах зафиксировано 8 аварийных завершений рабочих процессов GitLab, из которых 4 связаны с применением экспоита. Отмечается, что первая фаза работы эксплоита была успешной, но вторая стадия завершилась сбоем.
На момент атаки в контейнере использовалась уязвимая версия GitLab 19.3.4, которая 22 октября была обновлена до выпуска GitLab 19.3.6. Но администраторы Alpine не учли то, что исправление внесено только в официальные установочные пакеты GitLab 19.3.6, а не в сам код GitLab, так как уязвимость присутствует в инструментарии Ruby. В контейнере продолжал использоваться старый инструментарий Ruby и уязвимость оказалась неисправленной.
То что система остаётся уязвимой было выявлено только 26 октября. Разбор логов показал, что 25 и 26 октября атакующие возобновили попытки совершения атаки. 27 октября доступ сторонних пользователей к GitLab был ограничен. 28 октября содержимое было пересобрано, все пароли сброшены (пользователям необходимо установить новый пароль через процедуру восстановления забытого пароля), а ключи доступа заменены. 29 октября обновлённый сервер был введён в строй. Сопровождаемый проектом Docker-контнейнер alpinelinux/gitlab оставался уязвимым вплоть до 27 октября.