CVE-2024-27198

JetBrains TeamCity

ВЫСОКАЯ ВЕРОЯТНОСТЬ

Дата обнаружения

2024-03-07

Официальное описание

JetBrains TeamCity contains an authentication bypass vulnerability that allows an attacker to perform admin actions.

🛡️
Технический анализ и план устранения

Суть уязвимости

CVE-2024-27198 — это критическая уязвимость обхода аутентификации (Authentication Bypass) в веб-компоненте JetBrains TeamCity. Проблема вызвана некорректной обработкой путей в контроллере BaseController, что позволяет злоумышленнику получить доступ к защищенным эндпоинтам без авторизации.

Используя специально сформированный URL (например, через обращение к несуществующим ресурсам с определенными параметрами), атакующий может обойти фильтры безопасности и выполнить административные действия, включая создание новых учетных записей администратора или выполнение произвольного кода (RCE) на сервере через функции администрирования.

Как исправить

Основным и рекомендуемым способом устранения уязвимости является обновление TeamCity до версии 2023.11.4 или выше.

  1. Скачайте актуальную версию TeamCity с официального сайта JetBrains.
  2. Выполните резервное копирование базы данных и конфигурационных файлов.
  3. Остановите службу TeamCity.
  4. Установите обновление.

Для Linux:

./runAll.sh stop

Для Windows:

Stop-Service TeamCity

После установки обновления запустите службу и проверьте версию в консоли администрирования.

Временные меры

Если немедленное обновление невозможно, необходимо применить один из следующих методов защиты:

1. Установка плагина безопасности JetBrains выпустила специальный патч-плагин для старых версий TeamCity (начиная с 2017.1 и выше). - Скачайте плагин TeamCity Security Update Plugin. - Загрузите его в TeamCity через меню Administration -> Plugins -> Upload plugin zip. - Перезагрузка сервера не требуется.

2. Ограничение доступа на уровне Reverse Proxy Если TeamCity находится за Nginx или другим прокси-сервером, заблокируйте подозрительные запросы, содержащие попытки обхода путей. Пример конфигурации для Nginx:

location ~* /.*\?.*jsp=.* {
    deny all;
}

3. Изоляция сервера Ограничьте доступ к веб-интерфейсу TeamCity, разрешив подключения только с доверенных IP-адресов администраторов через Firewall.

Для Linux (iptables):

iptables -A INPUT -p tcp --dport 8111 -s <TRUSTED_IP> -j ACCEPT
iptables -A INPUT -p tcp --dport 8111 -j DROP