Alpine обновила GitLab, но осталась уязвимой: исправление лежало в патче Ruby

Уязвимость с CVSS 10.0 сидела в регулярных выражениях Ruby, а GitLab применяет исправление только в своих пакетах. В образе Alpine был стандартный Ruby.

Вкратце

Обновление до GitLab 19.3.6 22 октября не закрыло CVE-2026-97229 на GitLab от Alpine. 21 октября злоумышленник восемь раз обрушил воркеры. Команда пересобрала систему с нуля и сбросила все пароли.

Alpine не нашла признаков успешной атаки, но пробелы в логах не позволяют это исключить.

Исправление жило вне приложения

Отчёт Alpine об инциденте описывает CVE-2026-97229, уязвимость с CVSS 10.0 в том, как GitLab обрабатывает регулярные выражения в конфигурации CI. Ошибка находится в Onigmo, движке регулярных выражений Ruby, а исправление GitLab — набор патчей Ruby, которые применяются только в его собственных пакетах. Alpine перешла на 19.3.4, а не на 19.3.5, 13 октября, и на 19.3.6 22 октября. Но это не помогло: в их образе был стандартный Ruby.

21 октября злоумышленник восемь раз обрушил воркеры GitLab, в четырёх случаях дошёл почти до конца эксплойта и скачал образ контейнера. Alpine не нашла следов подмены релизов или пакетов, а ключи подписи никогда не хранились на сервере. Но из-за пробелов в логах нельзя исключить, что эксплойт сработал незаметно. Экземпляр пересобрали, все пароли сбросили, секретные ключи заменили. Исправление в основной ветке Ruby вышло 23 октября, в версиях 3.3.13, 3.4.12 и 4.0.9.

Тред: патчить компонент, а не приложение

«Насколько я могу судить, три из четырёх затрагивают старые версии Ruby, для которых не выходят патчи безопасности. Обновите Ruby!» — основатель сервиса по обновлению Ruby on Rails

Тем, кто сам хостит GitLab, нужно обновить Ruby, а не только GitLab. Образ стоит скачать заново, если его забирали до 27 октября.

Получайте такие разборы каждый день

Главные истории Hacker News — на email, в Telegram или RSS.

Это последняя новость выпуска 29 октября 2026.

Перейти в архив выпусков