Мощный CI/CD для команд, ориентированных на DevOps
Новости Безопасность
Резюме
В октябре 2026 года частные ключи восьми промежуточных центров сертификации, управляемых eMudhra, оказались слабыми и восстановимыми по общедоступным данным. Согласно официальному заявлению eMudhra, ни один из затронутых промежуточных ЦС не выпускал сертификаты конечных сущностей (конечные сертификаты), и у eMudhra нет данных о том, что слабые ключи были восстановлены или эксплуатировались до раскрытия этой проблемы.
Проблема не является уязвимостью в самом TeamCity. Тем не менее хранилища доверенных сертификатов, поддерживаемые другими программными компонентами (в первую очередь средой выполнения Java), от которых зависит TeamCity, могут продолжать доверять скомпрометированным сертификатам. Начиная с версий 2026.2.2 и 2026.1.6, TeamCity отображает отчет о состоянии, если установка все еще доверяет затронутым сертификатам, а также инструкции по устранению проблемы.
Рекомендуемые действия:
- TeamCity On-Premises: проверьте установки сервера и агентов сборки и примените необходимые исправления в соответствии с приведенными ниже инструкциями. Обновитесь до v2026.2.2 or v2026.1.6 для получения обновленной среды выполнения Java для установщика агента Windows, обновленных образов Docker и отчета о состоянии здоровья, или следуйте инструкциям ниже, чтобы применить те же исправления к текущей установке.
- TeamCity Cloud: TeamCity Cloud уже обновлен. Сертификаты, загруженные в TeamCity, подлежат проверке, как описано в разделе Сертификаты, загруженные в TeamCity ниже. Самостоятельно размещаемые агенты сборки также должны быть проверены в соответствии с инструкциями ниже.
Подробности
17 октября 2026 года было сообщено о компрометации закрытых ключей восьми промежуточных центров сертификации eMudhra (шесть для TLS и два для подписи кода). Это инцидент с удостоверяющим центром в масштабах всей индустрии, а не проблема, специфичная для TeamCity. Сертификаты, выданные с помощью этих ключей, будут выглядеть действительными для любого программного обеспечения, которое все еще им доверяет.
Поставщики браузеров и операционных систем выпустили обновления, блокирующие скомпрометированные сертификаты, и системы защищены сразу после их установки. Программное обеспечение с собственным хранилищем доверенных сертификатов, такое как среда выполнения Java, продолжает доверять скомпрометированным сертификатам до тех пор, пока это хранилище не будет обновлено. Сервер и агенты сборки TeamCity используют хранилище доверенных сертификатов своей среды выполнения Java.
Загружаемые дистрибутивы TeamCity не подписаны сертификатом eMudhra и не затронуты проблемой.
Что вам нужно сделать
1. Обновите среду выполнения Java
- Определите среду выполнения Java, используемую каждым узлом сервера и агентом, включая любые пользовательские хранилища доверенных сертификатов, заданные с помощью javax.net.ssl.trustStore.
- Ознакомьтесь с примечаниями к выпуску поставщика Java для уязвимостей CVE-2026-91403 и CVE-2026-114820. Для Amazon Corretto 21 исправленная сборка имеет номер 21.0.13.0.11 или выше.
- Обновите затронутые среды выполнения и перезапустите каждый узел сервера или агент.
Дополнительная проверка хранилища доверенных сертификатов может выявить затронутые сертификаты, все еще присутствующие в хранилище. Если обновление невозможно, воспользуйтесь командами ручного устранения неполадок в том же разделе.
Удаление AAA Certificate Services может нарушить работу незатронутых служб; протестируйте зависящие подключения перед удалением этого корневого сертификата.
2. Обновите сервер TeamCity и проверьте загруженные сертификаты
Следующие рекомендации по обслуживанию сервера применимы к инсталляциям TeamCity On-Premises. JetBrains патчит TeamCity Cloud, но сертификаты, загруженные в службу, все равно требуют проверки.
- По возможности обновите TeamCity. В версиях 2026.2.2 и 2026.1.6 добавлены отчет о состоянии, другие улучшения продукта и исправления других уязвимостей. Существующие агенты требуют независимой проверки.
- Обновите Java на каждом узле сервера. Следуйте инструкциям из раздела Обновите среду выполнения Java даже после обновления TeamCity.
- Переразверните инсталляции Docker. Загрузите исправленный образ сервера 2026.2.2 или 2026.1.6 с Docker Hub после его публикации или пересоберите существующий образ, используя инструкции по созданию образа сервера. Пересоздайте контейнеры.
- Проверьте загруженные сертификаты. Используйте отчет о состоянии или команды проверки сертификатов ниже, а затем удалите затронутые сертификаты через корневого проекта. Обновление Java не удаляет загруженные сертификаты.
Обновление сервера TeamCity не обновляет интеграции или стороннее программное обеспечение. Проверьте эти компоненты отдельно, как описано в разделе Проверка и обновление вспомогательной инфраструктуры.
3. Обновите агенты TeamCity и проверьте доверенные сертификаты
- Обновите Java на каждом агенте сборки. Следуйте инструкциям из раздела Обновите среду выполнения Java. Клиенты TeamCity Cloud также должны проверить среды выполнения Java, используемые их собственными агентами. Отчет о состоянии не проверяет агенты.
- Обновите установки Docker. Загрузите исправленный образ агента 2026.2.2 или 2026.1.6 с Docker Hub. Кроме того, вы можете пересобрать существующий образ, используя те же инструкции, что и для образа сервера. Пересоздайте контейнеры, используя обновленный образ.
- Проверьте сертификаты агента. Выполните команды проверки сертификатов в разделе Технические команды из каталога <agent home>/conf/trustedCertificates и удалите все затронутые файлы сертификатов. Обновление Java не удаляет эти сертификаты.
4. Проверьте и обновите вспомогательную инфраструктуру
Обновление сервера не обновляет интеграции или стороннее программное обеспечение. Мы рекомендуем проверять эти компоненты независимо:
- Операционные системы и инструменты сборки: установите обновления поставщика для хранилищ доверенных сертификатов ОС, других сред выполнения Java, Git и MinGit, модуля certifi для Python, Node.js и других инструментов с отдельными хранилищами доверенных сертификатов.
- Пользовательские образы: обновите ОС и инструменты внутри каждого затронутого образа, пересоберите образ и пересоздайте контейнеры.
- Подключенные службы: замените сертификаты eMudhra, используемые хостами VCS, реестрами пакетов и другими службами, посредством процесса миграции eMudhra.
Технические команды
Каждый скрипт определяет свои переменные среды в верхней части:
- TEAMCITY_JRE: по умолчанию используется JAVA_HOME; измените значение, если TeamCity работает на другой JRE или JDK.
- TC_TRUSTSTORE: задается для любого пользовательского хранилища javax.net.ssl.trustStore (по умолчанию для JDK 8: jre/lib/security/cacerts).
- TC_STOREPASS: измените, если используется другой пароль.
- TC_CERT_DIR: каталог с файлами сертификатов для проверки (где применимо).
Дополнительная проверка хранилища доверенных сертификатов
Обратите внимание, что результат применим только к выбранному хранилищу доверенных сертификатов. Команды не проверяют файл blocked.certs.
Linux и macOS (Bash или zsh):
Windows (PowerShell):
Сертификаты, загруженные в TeamCity
Отчет о состоянии в версиях 2026.2.2 и 2026.1.6 перечисляет затронутые сертификаты сервера. Для ручной проверки изучите пользовательские сертификаты и выявите затронутые.
Установите путь к каталогу с пользовательскими сертификатами (TC_CERT_DIR) следующим образом и выполните команду:
- Сервер: <Каталог данных TeamCity>/config/projects/_Root/pluginData/trustedCertificates
- Агент: <домашний каталог агента>/conf/trustedCertificates
Linux и macOS (Bash или zsh):
Windows (PowerShell):
Команды для ручного устранения проблемы
Перед выполнением убедитесь, что переменная TEAMCITY_JRE в текущем терминале указывает на среду выполнения, которая фактически запускает компонент TeamCity:
- Сервер: обратитесь к этой справке по конфигурации.
- Агенты: проверьте значение teamcity.agent.jvm.java.home на вкладке «Параметры» (Parameters) агента, как описано в руководстве по обновлению Java.
- Скопируйте файл lib/security/blocked.certs из JDK, содержащего исправление уязвимости CVE-2026-91403, в ту же папку используемой среды выполнения. В Java 8 используется jre/lib/security/blacklisted.certs, в то время как в некоторых сборках Java 11 и 13 также используется blacklisted.certs, поэтому перед копированием проверьте путь.
- Создайте резервную копию хранилища доверенных сертификатов. Удаление AAA Certificate Services может нарушить работу незатронутых служб; сначала протестируйте зависимые соединения.
- Выполните приведенную ниже команду. Она использует тот же заголовок скрипта, что и команды проверки выше, находит перечисленные выше уязвимые корневые сертификаты по отпечатку и удаляет их. Повторный запуск безопасен.
Linux и macOS (Bash или zsh):
Windows (PowerShell):
После этого выполните приведенные выше команды проверки, чтобы убедиться, что корневые сертификаты удалены. Перезапустите узел сервера или агента после завершения мер по устранению уязвимости. Проверьте все пользовательские хранилища доверенных сертификатов.
Бюллетень безопасности
Оценка ситуации и рекомендации JetBrains в отношении инцидента с центром сертификации eMudhra доступны здесь.
Часто задаваемые вопросы
Затронут ли TeamCity?
Непосредственно — нет. Будучи CI/CD-системой, TeamCity подключается к различным интеграциям и полагается на среды выполнения Java, инструменты сборки и другие компоненты с независимыми хранилищами доверенных сертификатов. Эти хранилища требуют отдельного анализа и обновления, как описано в разделе «Что необходимо сделать».
Нужно ли обновляться?
Рекомендуется обновиться до версий 2026.2.2 или 2026.1.6. Эти выпуски добавляют отчет о состоянии, другие улучшения продукта и исправления других уязвимостей.
Обновление TeamCity не всегда обновляет Java, поэтому проверьте соответствующую среду выполнения, используя раздел «Необязательная проверка хранилища доверенных сертификатов» выше. Если обновление TeamCity в данный момент невозможно, примените меры по устранению уязвимостей, описанные в разделе «Если обновление невозможно» выше.
Затронут ли TeamCity Cloud?
TeamCity Cloud уже обновлен, но клиентам все равно необходимо проверить:
- Локальные агенты, использующие агенты TeamCity, как описано выше.
- Сертификаты, загруженные в TeamCity, как описано выше.
Проверяет ли отчет о состоянии агенты сборки?
Нет. Отчет о состоянии проверяет только узлы сервера. Проверьте и исправьте агенты сборки вручную, как описано в разделе «Агенты TeamCity» выше.
Какие Docker-образы TeamCity затронуты?
Образы версий 2026.2.2 и 2026.1.6 содержат исправления, поэтому по возможности обновитесь. Более старые образы можно исправить, как описано в разделах «Сервер TeamCity» и «Агенты TeamCity» выше, а затем использовать их для воссоздания контейнеров.
Поддержка
По любым вопросам, касающимся этой проблемы, обращайтесь в службу поддержки TeamCity, создав запрос. Чтобы сообщить о проблеме безопасности в TeamCity, ознакомьтесь с нашей Политикой скоординированного раскрытия информации.
Ссылки
- Заявление eMudhra о недавнем инциденте безопасности сертификатов
- Инцидент с центром сертификации eMudhra: статус и рекомендации для продуктов JetBrains












