Хакер 8 раз обрушил GitLab разработчиков Alpine Linux. Пришлось пересоздать сервер с нуля

leer en español

6780
Хакер 8 раз обрушил GitLab разработчиков Alpine Linux. Пришлось пересоздать сервер с нуля

Разработчики обнаружили неприятную особенность патча GitLab только после нескольких дней атак.

image

Разработчики Alpine Linux полностью пересоздали собственный сервер GitLab после атаки через критическую уязвимость с оценкой 10 из 10. Злоумышленник восемь раз обрушил рабочие процессы сервиса, а установленное администраторами обновление не устранило опасную ошибку.

Атака началась 20 октября 2026 года. Неизвестный зарегистрировал учётную запись на gitlab.alpinelinux.org и отправил специально подготовленные конфигурации CI/CD, которые GitLab использует для автоматической сборки и тестирования программ. При четырёх из восьми аварийных завершений рабочих процессов эксплуатация продвинулась до следующего этапа, но затем остановилась.

Целью была CVE-2026-97229, которая позволяет удалённо выполнять произвольный код на сервере без авторизации. Ошибка связана с целочисленным переполнением при обработке регулярных выражений движком Onigmo, встроенным в Ruby. GitLab выпустила исправления 12 октября, однако команда Alpine на следующий день ошибочно установила уязвимую версию 19.3.4 вместо защищённой 19.3.5.

Злоумышленник также скачал контейнерный образ GitLab, который использовал проект. Вероятно, атакующий подстраивал эксплойт под конкретную сборку. Атака вызвала ошибки 502 и сбои заданий CI. Учётную запись заблокировали 23 октября. Повторные попытки проникновения 25 и 26 октября результата не дали.

22 октября GitLab обновили до 19.3.6. Четыре дня спустя администраторы обнаружили, что сервер по-прежнему уязвим. Исправление затрагивало не код GitLab, а поставляемый вместе с официальными пакетами интерпретатор Ruby. Собственный контейнер Alpine использовал обычный Ruby, поэтому необходимый патч в систему не попал.

Признаков запуска чужого кода или кражи информации не нашли, но взлом исключить не смогли. Часть журналов к моменту проверки исчезла, а исходящие соединения сервера не записывались. Успешная эксплуатация могла не вызвать сбоя и не оставить следов в веб-журналах. Поэтому 27 октября доступ к GitLab ограничили и начали пересоздавать сервер.

К 28 октября инфраструктуру восстановили, сменили секретные ключи GitLab и сбросили пароли всех пользователей. При успешной атаке могли раскрыться адреса электронной почты, хеши паролей, секреты двухфакторной аутентификации, токены и закрытые репозитории. Alpine советует сменить пароль и в других сервисах, если использовалась та же комбинация.

В опубликованном разборе инцидента разработчики сообщили, что не обнаружили подмены пакетов, репозитория aports и релизов Alpine от 21 октября. Коммиты сверили с внешними копиями и 45 сборочными серверами. Ключи подписи пакетов на атакованном GitLab никогда не хранились.

Для самостоятельно собранных GitLab одного обновления приложения недостаточно. Нужны Ruby 3.3.13, 3.4.12, 4.0.9 или более новые версии. Пользователям образа alpinelinux/gitlab:19.3.6 следует заново скачать выпуск от 27 октября. Прежний образ с тем же тегом остаётся уязвимым. Разработчики Alpine намерены быстрее устанавливать критические патчи и дольше хранить журналы.

Рекламодатель
Реклама. АО «Позитив Текнолоджиз». ИНН 7718668887. 18+
Сайт рекламодателя: ptsecurity.com↗️
АО «Позитив Текнолоджиз»