Трём уязвимостям в TeamCity, сервере непрерывной интеграции и доставки от JetBrains, хватит одной цели: они дают злоумышленнику выполнить собственный код на узле сборок и внедрить скрипты в веб-интерфейс, который открывают разработчики. Исправления вышли в версиях 2026.2, 2026.1.4 и 2025.11.8, то есть по одному на каждую поддерживаемую ветку продукта. Двум проблемам вендор присвоил высокий уровень опасности, третьей средний.
Уязвимости TeamCity в протоколе сборки и веб-интерфейсе
Обход белого списка в сообщениях сборки
Самая заметная из трёх - CVE-2026-111094 с оценкой 8.1 по шкале CVSS 3.1. Ошибка сидит в протоколе, по которому агенты сборки обмениваются сообщениями с сервером. Вендор называет её обходом белого списка: проверка допустимых сообщений пропускает специально сформированные данные, а те доходят до механизма десериализации недоверенных данных (CWE-502). Результат - выполнение произвольного кода на сервере. Учётная запись для атаки не нужна, зато сложность эксплуатации вендор оценивает как высокую: срабатывание требует стечения условий, о которых публично не сообщается. Проблему нашёл исследователь HoYoSec Lufei.
Цена такой уязвимости выходит за пределы одного сервера. В TeamCity сходятся доступы к репозиториям, артефактам и сценариям развёртывания. Через подконтрольный сервер сборок злоумышленник получает путь к исходному коду и к выпускаемым сборкам, поэтому удар приходится по всей цепочке поставки.
Скрипты в обзоре проекта и журнале сборки
Вторая уязвимость, CVE-2026-111095 с оценкой 8.0, относится к хранимому межсайтовому скриптингу (CWE-79). Она затрагивает классический обзор проекта. Третья проблема того же класса, с оценкой 6.7 и средним уровнем, проявляется в классическом журнале сборки. Обе требуют учётной записи с ограниченными правами и действия пользователя. Вредоносные данные сохраняются на сервере, а срабатывают в браузере того, кто откроет страницу, поэтому заражение не ограничивается одной сессией и сохраняется между входами. Последствия - действия в интерфейсе от имени открывшего страницу и доступ к содержимому его сессии. Обе ошибки нашёл исследователь Antoni Tremblay.
Уязвимости затрагивают все три поддерживаемые линии продукта сразу. Командам, которые держат TeamCity на нескольких площадках, придётся обновлять каждую ветку по отдельности, потому что общего исправления для 2025.11, 2026.1 и 2026.2 вендор не предлагает.
Обновление до исправленных сборок
Закрыть все три проблемы можно только переходом на исправленные сборки. Ветке 2026.2 нужен выпуск 2026.2, ветке 2026.1 - 2026.1.4, ветке 2025.11 - 2025.11.8. Номера версий важно сверить точно: обновление до промежуточной сборки внутри той же линии уязвимости не устраняет.
Если обновление затрагивает много узлов, разумно начать с тех серверов, которые доступны агентам из менее доверенных сегментов сети, поскольку именно этот канал задействует уязвимость с выполнением кода.
Отдельного внимания заслуживают сценарии сборки, полученные из внешних источников, а также учётные записи с правом создавать проекты. Обе эти категории данных участвуют в эксплуатации хранимого межсайтового скриптинга, хотя полностью риск снимает только обновление.
Инструменты сборки давно перестали быть вспомогательным софтом. Они держат ключи от репозиториев, реестров образов и продакшена, поэтому одна ошибка в них позволяет обойти несколько уровней защиты сразу. Пока NVD заканчивает разбор этих трёх записей, у администраторов TeamCity есть точные версии для обновления и понятный список того, что именно закрывает каждая из них.
Ссылки
- https://nvd.nist.gov/vuln/detail/cve-2026-111094
- https://nvd.nist.gov/vuln/detail/cve-2026-111095
- https://nvd.nist.gov/vuln/detail/cve-2026-111096
- https://www.jetbrains.com/privacy-security/issues-fixed/?product=TeamCity