Свой 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. Для рабочей системы лучше сразу взять актуальную поддерживаемую версию: эти номера закрывают именно эту ошибку.
- Как подтвердить
- Нужны ручной аудит и проверка реализации. Отсутствие находок во внешнем скане не подтверждает безопасность.
- Продукт
- 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 в бюллетене этой ошибки не указаны. Это не повод оставаться на старой ветке: у неё закончилась поддержка, и там другие исправления.
| Ветка | Затронуто | Первое исправление |
|---|---|---|
| 16.1 | до 16.1.6 | 16.1.6 |
| 16.2 | до 16.2.9 | 16.2.9 |
| 16.3 | до 16.3.7 | 16.3.7 |
| 16.4 | до 16.4.5 | 16.4.5 |
| 16.5 | до 16.5.6 | 16.5.6 |
| 16.6 | до 16.6.4 | 16.6.4 |
| 16.7 | до 16.7.2 | 16.7.2 |
Как проверить установленную версию
На сервере, где установлен GitLab, администратор может посмотреть версию локальной командой. Она не ходит в интернет и не проверяет чужие сайты.
gitlab-rake gitlab:env:infoКак снизить риск
Обновление закрывает ошибку отправки. Дополнительно включите второй фактор и посмотрите, не появились ли новые ключи SSH и токены.
Внешняя проверка сайта увидит только страницу входа. Она не читает журнал почты и не доказывает, что пароль уже меняли. Версию и аудит нужно смотреть внутри GitLab.
Что может произойти
- Письмо со ссылкой сброса могло уйти на адрес, который пользователь ещё не подтвердил
- Чужой человек мог задать новый пароль и войти в аккаунт
- Дальше открываются репозитории, токены CI и ключи, которые хранит GitLab
Как защититься
- 1Обновите свою ветку как минимум до 16.1.6, 16.2.9, 16.3.7, 16.4.5, 16.5.6, 16.6.4 или 16.7.2. Для рабочей системы лучше сразу взять актуальную поддерживаемую версию: эти номера закрывают именно эту ошибку.
- 2После обновления попросите пользователей проверить почту и сменить пароль, если приходило неожиданное письмо.
- 3Отзовите активные сессии и личные токены доступа у учётных записей, где пароль менялся без запроса владельца.
Как проходит проверка
Внешний просмотр страницы входа не показывает, куда GitLab отправил письмо и какая сборка установлена. Запись в каталоге CISA KEV говорит об атаках в мире, а не о том, что FindRisk подтверждает эту CVE на вашем домене. Автоматический результат показывает внешний признак риска и требует проверки специалистом с учётом конкретной конфигурации.
Проверить другие внешние рискиЧто делать после обнаружения
- Запишите версию GitLab до обновления и время установки патча.
- В журналах аудита найдите сбросы пароля за дни до исправления.
- Повторите проверку версии на каждом инстансе, включая резервный и тестовый, если он доступен из сети.
Частые вопросы
Нужно ли обновлять проект на GitLab.com?
Нет. Бюллетень относится к собственному серверу GitLab CE/EE. Облачный GitLab.com обновляет поставщик.