Исследователь из Rapid7 выявил в GitLab уязвимость, позволяющую удаленно и без аутентификации получить списки пользователей веб-приложения. Проблема затрагивает многие серверы GitLab, доступные из интернета (таких установок более 50 тысяч). Заплатка включена в состав обновлений 14.8.2, 14.7.4 и 14.6.5, вышедших неделю назад.
Согласно бюллетеню разработчика, уязвимость CVE-2021-4191 привязана к GraphQL API и актуальна для частных экземпляров GitLab ограниченного пользования. Проблема, оцененная как умеренно опасная (5,3 балла CVSS), была привнесена с выпуском версии 13.0; ее наличие подтверждено также для всех сборок в ветках с 14.4 по 14.7 включительно.
В блог-записи Rapid7 указана причина появления уязвимости — отсутствие проверки подлинности при выполнении некоторых запросов к GraphQL API. В результате открылась возможность для сбора данных зарегистрированных пользователей GitLab — их ID, имен, названий учетной записи, адресов email.
Готовые списки юзернеймов злоумышленник может использовать для проведения брутфорс-атак, в том числе перебором возможных комбинаций с ходовыми или украденными паролями. Такие базы неизменно пользуются спросом на подпольном рынке; ими снабжают самоходных зловредов (Mirai, Emotet), они облегчают хакерам проникновение в целевые сети (Fancy Bear, Nobelium).
В Metasploit уже добавлен новый модуль для CVE-2021-4191, и эксперты ожидают всплеск сканов и попыток сбора данных с помощью новой дыры. Поиск по Shodan показал, что в Сети помимо собственных серверов gitlab.com присутствуют более 50 тыс. потенциально уязвимых экземпляров GitLab, с большой концентрацией в Китае.
Кроме CVE-2021-4191, в GitLab пропатчены еще шесть уязвимостей, в том числе одна критическая (CVE-2022-0735; 9,6 балла CVSS). Последняя позволяет в обход авторизации украсть токены регистрации так называемых runner — агентов, выполняющих задачи по интеграции и развертыванию (CI/CD) в рамках автоматизированного процесса доработки исходного кода.
Установка патчей, по словам разработчиков GitLab, вызовет локальный сброс токенов регистрации runner. Если регистрация выполняется автоматически (с помощью скриптов), обновление нарушит этот процесс. Ранее зарегистрированные runner при этом не пострадают.
Помимо установки патчей пользователям GitLab настоятельно рекомендуется заблокировать интернет-доступ к таким серверам и скрыть профили — возможность просмотра должна появляться только после входа в систему.