
Обнаружена критическая уязвимость в Docker-образах Jenkins: Хакеры получили возможность перехватывать сетевые соединения!
10 апреля 2025 года команда Jenkins опубликовала информацию о новой уязвимости, которая представляет серьёзную угрозу для процессов CI/CD (Continuous Integration / Continuous Deployment) тысяч организаций по всему миру.
Данная уязвимость обнаружена в управлении SSH host-ключами в широко используемых Docker-образах Jenkins. Это позволяет злоумышленникам осуществлять атаку типа «man-in-the-middle» (MITM) между сервером управления Jenkins (controller) и агентами сборки (build agent), перехватывая их сетевое взаимодействие.
Эти уязвимости зарегистрированы под идентификаторами CVE-2025-32754 и CVE-2025-32755 и затрагивают следующие Docker-образы Jenkins:
CVE-2025-32754
Эта уязвимость касается образов Jenkins с компонентом ssh-agent, созданных на основе операционной системы Debian, начиная с версии 6.11.1 и ниже.
Эксплуатация данной уязвимости позволяет злоумышленнику, перехватившему сетевой трафик между сервером Jenkins и SSH-агентом, выполнять следующие действия:
- Захватывать передаваемые данные;
- Получать несанкционированный доступ;
- Похищать конфиденциальную информацию;
- Управлять процессами сборки или изменять их.
Степень опасности уязвимости оценивается как критическая и имеет рейтинг CVSS 3.1 — 9.1 балла.
CVE-2025-32755
Эта уязвимость обнаружена в устаревших образах Jenkins с компонентом ssh-slave на базе Debian. Уязвимость затрагивает все версии этих образов.
Подобно предыдущей уязвимости, она позволяет злоумышленнику:
- Перехватывать или изменять сетевой трафик;
- Похищать данные аутентификации и другие конфиденциальные сведения;
- Вносить вредоносный код в процесс сборки;
- Захватывать контроль над процессом CI/CD.
Данная уязвимость также имеет критическую степень опасности — CVSS 3.1 рейтинг 9.1 балла.
Причина уязвимости
Проблема заключается в том, что при создании Docker-образов Jenkins на базе Debian SSH host-ключи генерировались на этапе сборки образа, а не при запуске контейнера.
Это означает, что все контейнеры одной версии имели одинаковые SSH host-ключи, что противоречит базовым принципам безопасности SSH, где каждый сервер или агент должен иметь уникальные ключи.
В случае атаки злоумышленник, перехвативший сетевое соединение между Jenkins controller и агентом, может:
- Вмешиваться в процессы сборки;
- Похищать конфиденциальные данные и ключи доступа;
- Встраивать вредоносный код в процесс сборки;
- Реализовывать атаки на цепочку поставок (Supply Chain Attacks).
Уязвимые образы Jenkins:
jenkins/ssh-agent (на базе Debian):
- Все версии до 6.11.1 включительно;
- Debian, Stretch, Bullseye или Bookworm образы.
jenkins/ssh-slave (устаревшие, не поддерживаются):
- latest, jdk11, latest-jdk11, revert-22-jdk11-JENKINS-52279.
Примечание: Docker-образы на базе Alpine, Windows или Nanoserver не подвержены данной уязвимости.
Решение проблемы
Команда Jenkins выпустила новые образы версии 6.11.2, в которых SSH host-ключи автоматически генерируются при первом запуске контейнера, а не на этапе создания образа. Это обеспечивает уникальные ключи для каждого контейнера и предотвращает атаки типа MITM.
Всем организациям, использующим Docker-образы Jenkins, рекомендуется:
- Немедленно обновить образы jenkins/ssh-agent до версии 6.11.2 или выше.
- По возможности отказаться от устаревших образов jenkins/ssh-slave и перейти на jenkins/ssh-agent.
- Проверить используемую версию образа и обновить её при необходимости.
- Проверить уникальность SSH host-ключей.
- Усилить защиту сетевой инфраструктуры.
- Контролировать безопасность процессов сборки и CI/CD.
Данная ситуация ещё раз подтверждает важность регулярного обновления систем и быстрого реагирования на уязвимости даже в самых популярных инструментах разработки и автоматизации.