
Эксплойт proof-of-concept для JetBrains TeamCity, который выполняет неаутентифицированное удаленное выполнение кода через десериализацию протокола опроса агентов, развертывает JSP-полезную нагрузку и поддерживает многопоточное выполнение команд.
Обзор • Визуальная схема • Требования • Использование • Ограничения • Защита
[!CAUTION] Этот PoC выполняет команду операционной системы и может изменять каталог приложения TeamCity. Используйте его только в изолированной лабораторной среде или против систем, на которые у вас есть явное письменное разрешение.
JetBrains сообщает, что уязвимы все выпуски TeamCity On-Premises, предшествующие исправленным версиям. По возможности обновитесь до актуальной поддерживаемой версии. Если немедленное обновление невозможно, следуйте инструкциям вендора по установке его плагина безопасности.
[!NOTE] Этот репозиторий не утверждает, что CVE внесён в каталог CISA Known Exploited Vulnerabilities. JetBrains не сообщала об известных случаях активной эксплуатации, когда публиковала свой бюллетень 27 июля 2026 года.
На высоком уровне PoC:
result.txt.Сгенерированный JSP пытается удалить себя при вызове. Относитесь к очистке как к попытке (best-effort), а не как к гарантии того, что целевая система останется без изменений.
Python 3.9 or later
Target Authorized TeamCity On-Premises lab instance
Transport HTTP or HTTPS access
Shell bash available on the TeamCity server
Packages Python standard library only
Safety Disposable environment or verified backup
[!IMPORTANT] Полезная нагрузка выполняет команды через
bash -c. Поэтому серверу TeamCity под Windows требуется совместимая установка Bash; в противном случае этап выполнения команды завершится ошибкой.
Запустите PoC из каталога проекта:
python3 exploit.py
Программа запрашивает цель, команду и желаемое количество потоков:
[*] Target URL or file: http://127.0.0.1:8111
[*] Command: id
[*] Threads (default 10): 1
Введите полный базовый URL цели. Если схема не указана, скрипт автоматически
использует http://.
Для нескольких лабораторных систем укажите путь к текстовому файлу с одним URL в строке:
http://127.0.0.1:8111
http://192.0.2.10:8111
https://teamcity.lab.example
Не добавляйте встроенные комментарии в строки с целями, поскольку парсер их не удаляет. Начните с одного потока и увеличивайте число одновременных потоков только после подтверждения границ и возможностей авторизованной лаборатории.
Успешные результаты добавляются в result.txt:
http://127.0.0.1:8111 -> uid=1000(tcuser) gid=1000(tcuser) groups=1000(tcuser)
Файл может содержать чувствительные результаты выполнения команд. Не храните его в системе контроля версий и надёжно удалите, когда он больше не нужен.
bash.../webapps/ROOT; нестандартные
структуры каталогов TeamCity или сервлет-контейнеров могут не работать.args. Первая отправленная команда выполняется
независимо, однако дополнительные команды из этого запроса будут завершаться
ошибкой, пока код не исправят.flowchart LR
A["Identify TeamCity version"] --> B{"Patched release?"}
B -- "No" --> C["Upgrade to 2025.11.7 / 2026.1.3+"]
B -- "Upgrade blocked" --> D["Apply JetBrains security patch plugin"]
C --> E["Restrict access to trusted networks or VPN"]
D --> E
E --> F["Review logs, credentials, artifacts, and pipelines"]
2025.11.7, 2026.1.3 или более новой
поддерживаемой версии.Этот код предоставляется для исследований в области безопасности, проверки и защитного тестирования в средах, которыми вы владеете или которые вам явно разрешено оценивать. Вы несёте ответственность за соблюдение применимых законов, договоров и правил взаимодействия. Автор и участники не несут ответственности за несанкционированное использование или причинённый в результате ущерб.
| Property | Value |
|---|
| CVE | CVE-2026-63077 |
| Продукт | JetBrains TeamCity On-Premises |
| Воздействие | Неаутентифицированное удалённое выполнение кода через протокол опроса агентов |
| Слабое место | CWE-502 — Десериализация недоверенных данных |
| CVSS | 9.8 Critical — JetBrains CNA, CVSS 3.1 |
| Аутентификация | Не требуется |
| Исправленные версии | 2025.11.7 и 2026.1.3 |
| Альтернативное устранение | Плагин безопасности JetBrains для TeamCity 2017.1+ |
| TeamCity Cloud | По заявлению JetBrains, действий от клиентов не требуется |