Дата публикации:
Общие сведения
В Gitlab обнаружена уязвимость позволяющая злоумышленнику беспрепятственно получить доступ к любой учетной записи.
Уязвимость заключается в логической ошибке обработки запроса на восстановление пароля. С помощью специально созданного запроса, злоумышленник указывает два почтовых адреса, на которые требуется отправить письмо с данными для восстановления доступа, при этом второму почтовому адресу будут отправлены данные первого адреса.
Пример запроса злоумышленника:
user[email][]=victim@email.com&user[email][]=attacker@email.com
На attacker@email.com будет отправлено письмо для восстановления пароля от victim@email.com.
Рейтинг
В соответствии с CVSSv3.1 уязвимости присвоен рейтинг: 10.0
Уязвимые версии и продукты
Gitlab
- с 16.1 до 16.1.5 включительно
- с 16.2 до 16.2.8 включительно
- с 16.3 до 16.3.6 включительно
- с 16.4 до 16.4.4 включительно
- с 16.5 до 16.5.5 включительно
- с 16.6 до 16.6.3 включительно
- c 16.7 до 16.7.1 включительно
Рекомендации
Если в инфраструктуре используется данное ПО, специалисты Центра мониторинга и реагирования рекомендуют пользователям предпринять следующие действия:
1. проверить /var/log/gitlab/gitlab-rails/production_json.log на предмет http-запросов к эндпоинту /users/password с параметром params.value.email состоящим из массива почтовых адресов;
2. проверить /var/log/gitlab/gitlab-rails/audit_json.log на вхождения структуры, в которой параметр meta.caller_id равен PasswordsController#create, а также параметр target_details состоит из массива почтовых адресов;
3. необходимо установить последние обновления для Gitlab;
4. включить двухфакторную аутентификацию пользователям;
5. проверить актуальность подписки на модуль Security updates;
6. добавить в блокирующее правило IDPS сигнатуры:
- Gitlab Account Takeover.