CloudBees, развивающая Jenkins, опубликовала бюллетень безопасности, в котором раскрыла уязвимость CVE-2026-53435 (внутренний идентификатор SECURITY-3707). Проблема затрагивает механизм десериализации конфигураций через библиотеку XStream. Уязвимость получила оценку CVSS 9.8. Злоумышленник с минимальными правами (Overall/Read плюс право на изменение конфигурации элементов вроде View или Item) может отправить специально сформированный файл config.xml. В результате происходит чтение произвольных файлов на сервере, а также возможно выполнение удаленного кода и подмена сессии другого пользователя.
Уязвимость CVE-2026-53435
Уязвимы Jenkins weekly до версии 2.567 включительно и Jenkins LTS до версии 2.555.2 включительно. Патчи выпущены в weekly 2.568 и LTS 2.555.3. Вектор атаки не требует сетевого доступа к неопубликованным портам - достаточно Web-интерфейса Jenkins. Аутентификация необходима, но привилегии требуются самые низкие. Это делает уязвимость особенно опасной для сред, где к Jenkins имеют доступ сотни разработчиков с базовыми аккаунтами.
Корень проблемы кроется в механизме, который Jenkins использует для сохранения и восстановления конфигураций. Система применяет библиотеку XStream для сериализации и десериализации XML-представлений объектов. После введения JEP-200 в Jenkins был реализован ClassFilter - белый список типов, разрешённых к десериализации. Однако в обработке config.xml допущена ошибка. Злоумышленник может вставить в XML легитимные с точки зрения фильтра классы (например, hudson.Plugin$DummyImpl или элементы из hudson.model.View), а затем через специальные контейнеры вроде DescribableList обойти ограничения. После успешной десериализации вредоносный объект взаимодействует с Web-фреймворком Stapler. Это позволяет через HTTP-запросы инициировать чтение файлов по произвольным путям. Более того, исследователи подтвердили возможность эскалации до выполнения кода через Script Console Jenkins.
Важность уязвимости заключается в сочетании двух факторов: низкий порог входа и высокий ущерб. В крупных организациях у Jenkins часто есть пользователи с правами "только на чтение" или с возможностью редактировать собственные пайплайны. Такая учётная запись уже позволяет атаковать. Успешная эксплуатация даёт доступ к конфиденциальным данным: файлам конфигураций, ключам, паролям, а также к токенам доступа к другим системам. При успешном выполнении кода злоумышленник получает полный контроль над Jenkins-сервером и, через него, над инфраструктурой CI/CD.
В официальном бюллетене CloudBees подчёркивается, что патч закрывает именно вектор через config.xml. Разработчики внесли изменения в ClassFilter, а также усилили проверки при обработке запросов на обновление конфигурации элементов View и Item. Рекомендуется немедленно обновить Jenkins до указанных версий. Дополнительно следует пересмотреть права пользователей: предоставлять Overall/Read и права на изменение конфигураций только тем, кому это действительно необходимо.
После выхода исправления в открытом доступе появились PoC-эксплойты (доказательства концепции), демонстрирующие чтение файлов. Это типичная "n-day" ситуация: злоумышленники могут начать сканирование незапатченных систем в течение нескольких дней. Администраторам Jenkins стоит как можно скорее применить обновление. Если немедленный апгрейд невозможен, временной мерой может стать ограничение доступа к Web-интерфейсу, отключение неиспользуемых плагинов с правами на редактирование конфигураций, а также мониторинг аномальных HTTP-запросов, содержащих подозрительные XML-блоки.
Уязвимость CVE-2026-53435 - очередное напоминание о рисках, связанных с десериализацией данных из ненадёжных источников. Разработчики Jenkins уже приняли меры, но ответственность за своевременное обновление лежит на конечных пользователях. Игнорирование патча может привести к утечке критических данных и компрометации всей сборочной цепочки.
Ссылки
- https://www.cve.org/CVERecord?id=CVE-2026-53435
- https://x.com/DefusedCyber/status/2066446206285291526?s=20
- https://www.jenkins.io/security/advisory/2026-06-10/#SECURITY-3707