Jenkins закрыл критические уязвимости в плагинах Assembla, OWASP ZAP и Script Security

Jenkins

Разработчики Jenkins опубликовали бюллетень безопасности, в котором объявили об исправлении 19 уязвимостей в 18 плагинах. Четыре из них получили статус высокого уровня опасности (CVSS High). Уязвимости затрагивают плагины Assembla, External Workspace Manager, OWASP ZAP и Script Security.  Для некоторых продуктов патчи пока отсутствуют, что требует временных мер защиты.

Детали уязвимостей

Среди наиболее серьёзных проблем - уязвимость XML External Entity (XXE) в плагине Assembla (CVE-2026-57303). Плагин версии 1.4 и более ранних не настраивает парсер XML на предотвращение атак с внешними сущностями. Если злоумышленник может контролировать ответы сервера Assembla, он оказывается способен извлекать секреты с контроллера Jenkins или выполнять подделку запросов на стороне сервера (Server-Side Request Forgery). На момент публикации бюллетеня исправление для этой уязвимости не выпущено. Дополнительно в том же плагине выявлены две уязвимости среднего уровня: отсутствие проверки прав доступа в HTTP-эндпоинте для тестирования соединения (CVE-2026-57304) и межсайтовая подделка запроса (CSRF, CVE-2026-57305). Эти недостатки позволяют атакующему с разрешением Overall/Read подключаться к произвольному URL с произвольными учётными данными, но не дают возможности использовать XXE-уязвимость.

В плагине External Workspace Manager (CVE-2026-57296) обнаружен path traversal - уязвимость обхода каталогов. Версии 1.3.2 и ранее не отклоняли сегменты пути ".." при проверке кастомного пути рабочего пространства в шаге Pipeline exwsAllocate. В результате путь мог выйти за пределы настроенной точки монтирования диска. Злоумышленники с правом Item/Configure получали доступ к чтению произвольных файлов на файловой системе контроллера Jenkins, что, в свою очередь, может привести к удалённому выполнению кода (RCE). В версии 1.4.0 сегменты ".." отклоняются, а также проверяется, что запрошенный путь находится внутри настроенной точки монтирования перед обслуживанием через функцию внешнего браузера рабочего пространства.

Плагин OWASP ZAP (CVE-2026-57301) версии 1.0.7 и ранее не поддерживал распределённые сборки: все файловые операции и процессы функции "Automatically build ZAP" выполняются на контроллере Jenkins, а не на агенте, которому назначена сборка. Это позволяет атакующему с правом Item/Configure настроить функцию на сборку контролируемого им проекта, что приводит к выполнению произвольного кода на контроллере и обходу ограничений, закрепляющих сборку за конкретным агентом. Исправление также пока не выпущено.

Две высокоуровневые уязвимости затронули плагин Script Security. Первая (CVE-2026-57280) - обход sandbox через неявное приведение типов в типизированном цикле for (например, for (Type t in collection)). Плагин версии 1402.v94c9ce464861 и ранее не перехватывал это приведение, выполняемое на этапе генерации байт-кода. Таким образом, атакующий, способный предоставлять скрипты в sandbox, мог вызывать конструкторы произвольных типов без проверки sandbox и выполнять код на контроллере. Версия 1402.1405.vc96e74964250 обновляет библиотеку groovy-sandbox, которая перехватывает такие приведения. Вторая уязвимость (CVE-2026-57281) связана с отсутствием отклонения аннотаций трансформации AST (например, @CompileStatic и @TypeChecked), содержащих член extensions. Это могло позволить загрузить и выполнить скрипт из classpath до применения sandbox. Исследователи не нашли подходящих Groovy-файлов в Jenkins core или плагинах для эксплуатации, поэтому успешная атака считается маловероятной. В обновлённой версии такие аннотации отклоняются на этапе компиляции sandbox.

Кроме перечисленных, в бюллетене исправлены уязвимости среднего и низкого уровня в плагинах: Git client (OS command injection на агентах, CVE-2026-57282), Pipeline: Groovy (CSRF и неограниченная инстанциация типов, CVE-2026-57283, CVE-2026-57284), GitHub Branch Source (отсутствие проверки прав позволяет перечислять URL GitHub Enterprise, CVE-2026-57285), Git Parameter (отсутствие проверки прав раскрывает информацию о SCM, CVE-2026-57286), Job Configuration History (не скрывает зашифрованные значения секретов, CVE-2026-57287), Active Directory (LDAP-инъекция, CVE-2026-57288), MCP Server (отсутствие проверки прав позволяет читать скрипты Pipeline, CVE-2026-57300), Bitbucket Push and Pull Request (отключение проверки сертификатов SSL/TLS, CVE-2026-57289), Priority Sorter (CSRF, CVE-2026-57290), Gitee (несколько уязвимостей с отсутствием проверок и CSRF, CVE-2026-57291, CVE-2026-57292, CVE-2026-57293), EC2 Fleet (аналогичные проблемы, CVE-2026-57294, CVE-2026-57295), Contrast Continuous Application Security (отсутствие проверок и CSRF, CVE-2026-57297, CVE-2026-57298, CVE-2026-57299).

Всего бюллетень охватил плагины: Active Directory, Assembla, Bitbucket Push and Pull Request, Contrast Continuous Application Security, EC2 Fleet, External Workspace Manager, FitNesse, Git client, Git Parameter, Gitee, GitHub Branch Source, Job Configuration History, MCP Server, OWASP ZAP, Pipeline: Groovy, Priority Sorter, Script Security, Zowe zDevOps.

Администраторам Jenkins следует как можно скорее обновить перечисленные плагины до указанных в бюллетене версий. Для плагинов Assembla и OWASP ZAP, где патчи отсутствуют, временно рекомендуется отключить их использование или ограничить доступ к соответствующим функциям через настройки безопасности. Регулярное отслеживание обновлений и оперативное применение исправлений остаётся ключевой мерой защиты инфраструктуры CI/CD, поскольку экосистема Jenkins продолжает оставаться мишенью для атак, нацеленных на выполнение кода и кражу учётных данных.

Ссылки

Комментарии: 0