Почему один HTTP-запрос способен взломать вашу CI/CD-цепочку в TeamCity?

JetBrains закрыла критическую дыру в TeamCity On-Premises, которая позволяла постороннему человеку, вообще не имеющему учётных данных, выполнять произвольные команды на сервере. Уязвимости присвоен идентификатор CVE-2026-63077, а по шкале CVSS она получила 9.8 баллов из 10 возможных — это максимум для дистанционно эксплуатируемых проблем такого рода. Обнаружил баг исследователь Антони Трамбле (Antoni Tremblay), сообщивший о находке 10 июля 2026 года.
Суть проблемы кроется в протоколе опроса агентов (agent polling protocol) — механизме, через который агенты сборки регулярно связываются с сервером TeamCity, чтобы получать задания. Именно этот канал связи оказался слабым звеном: атакующий, у которого есть только HTTP или HTTPS доступ к серверу, мог обойти проверку подлинности и выполнить любые команды операционной системы. Причём с теми же правами, что и сам процесс TeamCity — а это, в зависимости от конфигурации, может означать доступ к весьма чувствительным ресурсам.
Что именно грозило пострадавшим организациям? Список неприятный: раскрытие конфигураций сборки, утечка хранимых учётных данных (тех самых токенов и паролей, которые CI/CD-системы обычно накапливают в изобилии), а также возможность изменить состояние сервера. Насколько глубоко атакующий мог залезть в инфраструктуру — зависело от того, с какими привилегиями изначально запущен процесс TeamCity. Если сервер работал от имени администратора или сервисной учётной записи с широкими правами, ущерб мог выйти далеко за пределы самого CI-сервера.
В официальном заявлении JetBrains эта механика описана довольно сухо, но по сути пугающе: «Если уязвимость будет эксплуатирована, неаутентифицированный злоумышленник с HTTP(S)-доступом к серверу TeamCity сможет обойти проверки аутентификации и выполнить произвольные команды операционной системы с привилегиями процесса сервера TeamCity». Формулировка не оставляет простора для интерпретаций — планка входа для атаки минимальна, а последствия максимальны.
На момент раскрытия информации компания заявила об отсутствии свидетельств эксплуатации уязвимости в реальных условиях. Это хорошая новость, но она не отменяет того факта, что после публикации CVE обратный инжиниринг патча — дело нескольких дней, а иногда и часов. История с уязвимостями в CI/CD-системах вообще склонна развиваться по одному сценарию: сначала тишина, потом массовое сканирование интернета ботами.
Исправление доступно в версиях 2025.11.7 и 2026.1.3. Пользователи облачной версии TeamCity Cloud могут не переживать — там обновление уже установлено, и Cloud-инстансы защищены. Для тех, кто по каким-либо причинам не готов немедленно обновить локальную инсталляцию, JetBrains выпустила отдельный плагин-патч безопасности, совместимый с версиями начиная с 2017.1. Здесь есть важная оговорка: плагин закрывает исключительно CVE-2026-63077 и никак не затрагивает другие накопленные за годы уязвимости. Сама компания прямо предупреждает: «Плагин безопасности исправит только описанную выше уязвимость (CVE-2026-63077). Мы всегда рекомендуем обновлять сервер до последней версии, чтобы получить преимущества от множества других обновлений безопасности».
Отдельного внимания заслуживает ещё одна цитата из рекомендаций JetBrains, которая звучит почти как предупреждение всей отрасли: «Даже открытый доступ к экрану входа TeamCity или REST API может дать злоумышленникам потенциальную точку входа для эксплуатации новых обнаруженных уязвимостей». Это прямое указание на то, что сама по себе публичная доступность административных интерфейсов — уже риск, независимо от того, залатана конкретная дыра или нет.
Из практических рекомендаций компания выделяет несколько пунктов. Прежде всего — обновление до исправленных версий как основной и наиболее надёжный путь. Если обновить сервер прямо сейчас невозможно, следует хотя бы поставить патч-плагин. Дальше идут более общие советы по гигиене инфраструктуры: доступ к серверам TeamCity, торчащим в открытый интернет, стоит ограничить требованием подключения через VPN, добавить дополнительный слой аутентификации или защиты и в принципе избегать без необходимости выставлять наружу экран логина или REST API.
История с CVE-2026-63077 в очередной раз показывает уязвимое место современных DevOps-конвейеров: инструменты, которые должны автоматизировать сборку и доставку кода, сами становятся привлекательной мишенью именно потому, что имеют доступ ко всему остальному — репозиториям, секретам, серверам развёртывания. Взломав один сервер TeamCity, злоумышленник потенциально получает не просто доступ к одной машине, а плацдарм для атаки на всю цепочку поставки программного обеспечения.


Новое на сайте

Ссылка