Критический· CVSS 10.0CVEНужна ручная проверкаИзвестные уязвимости продуктовВсе материалы о GitLab

Свой GitLab: письмо сброса пароля на чужой адрес (CVE-2023-7028)

На своём GitLab CE/EE 16.1–16.7 письмо сброса пароля могло уйти на неподтверждённый email. Обновите инстанс и проверьте учётные записи. GitLab.com это не затрагивает.

Коротко о главном

Чем опасно
Письмо со ссылкой сброса могло уйти на адрес, который пользователь ещё не подтвердил
С чего начать защиту
Обновите свою ветку как минимум до 16.1.6, 16.2.9, 16.3.7, 16.4.5, 16.5.6, 16.6.4 или 16.7.2. Для рабочей системы лучше сразу взять актуальную поддерживаемую версию: эти номера закрывают именно эту ошибку.
Как подтвердить
Нужны ручной аудит и проверка реализации. Отсутствие находок во внешнем скане не подтверждает безопасность.
Посмотреть условия проверки
В этой статье
  1. Что произошло
  2. Кого это касается
  3. Как проверить установленную версию
  4. Как снизить риск
Продукт
GitLab
Оценка риска
CVSS 10 / 10

Как проверить и что учитывать

Нужна ручная проверка

Внешний просмотр страницы входа не показывает, куда GitLab отправил письмо и какая сборка установлена. Запись в каталоге CISA KEV говорит об атаках в мире, а не о том, что FindRisk подтверждает эту CVE на вашем домене. Не делайте вывод о наличии уязвимости только по одному внешнему признаку: подтвердите результат в настройках и версии компонента.

Что нужно для подтверждения

Версию и факт отправки писем проверяет администратор GitLab.

Ограничения вывода

  • Публичная страница /users/sign_in не раскрывает версию патча.
  • Отсутствие подозрительных писем в одной почте не доказывает, что сброс не запрашивали.

Что произошло

Сброс пароля в GitLab отправляет письмо со ссылкой. В затронутых выпусках 16.1–16.7 это письмо могло уйти на адрес электронной почты, который ещё не был подтверждён.

Ошибка занесена в каталог известных эксплуатируемых уязвимостей CISA. Это значит, что атаки уже наблюдали. Само по себе это не говорит, что затронут именно ваш сервер.

Кого это касается

Страница нужна администратору собственного GitLab CE или EE. GitLab.com обслуживает сам GitLab. Если вы только храните код на gitlab.com, обновлять сервер нечего.

Версии ниже 16.1 в бюллетене этой ошибки не указаны. Это не повод оставаться на старой ветке: у неё закончилась поддержка, и там другие исправления.

Версии GitLab для CVE-2023-7028 по бюллетеню от 11 января 2024
ВеткаЗатронутоПервое исправление
16.1до 16.1.616.1.6
16.2до 16.2.916.2.9
16.3до 16.3.716.3.7
16.4до 16.4.516.4.5
16.5до 16.5.616.5.6
16.6до 16.6.416.6.4
16.7до 16.7.216.7.2

Как проверить установленную версию

На сервере, где установлен GitLab, администратор может посмотреть версию локальной командой. Она не ходит в интернет и не проверяет чужие сайты.

Локальная проверка версии на своём сервере GitLab Omnibus.
gitlab-rake gitlab:env:info

Как снизить риск

Обновление закрывает ошибку отправки. Дополнительно включите второй фактор и посмотрите, не появились ли новые ключи SSH и токены.

Внешняя проверка сайта увидит только страницу входа. Она не читает журнал почты и не доказывает, что пароль уже меняли. Версию и аудит нужно смотреть внутри GitLab.

Что может произойти

  • Письмо со ссылкой сброса могло уйти на адрес, который пользователь ещё не подтвердил
  • Чужой человек мог задать новый пароль и войти в аккаунт
  • Дальше открываются репозитории, токены CI и ключи, которые хранит GitLab

Как защититься

  1. 1Обновите свою ветку как минимум до 16.1.6, 16.2.9, 16.3.7, 16.4.5, 16.5.6, 16.6.4 или 16.7.2. Для рабочей системы лучше сразу взять актуальную поддерживаемую версию: эти номера закрывают именно эту ошибку.
  2. 2После обновления попросите пользователей проверить почту и сменить пароль, если приходило неожиданное письмо.
  3. 3Отзовите активные сессии и личные токены доступа у учётных записей, где пароль менялся без запроса владельца.

Как проходит проверка

Внешний просмотр страницы входа не показывает, куда GitLab отправил письмо и какая сборка установлена. Запись в каталоге CISA KEV говорит об атаках в мире, а не о том, что FindRisk подтверждает эту CVE на вашем домене. Автоматический результат показывает внешний признак риска и требует проверки специалистом с учётом конкретной конфигурации.

Проверить другие внешние риски

Что делать после обнаружения

  • Запишите версию GitLab до обновления и время установки патча.
  • В журналах аудита найдите сбросы пароля за дни до исправления.
  • Повторите проверку версии на каждом инстансе, включая резервный и тестовый, если он доступен из сети.

Частые вопросы

Нужно ли обновлять проект на GitLab.com?

Нет. Бюллетень относится к собственному серверу GitLab CE/EE. Облачный GitLab.com обновляет поставщик.

Источники

Больше материалов о рисках и защите сайтов — в каталоге уязвимостей.