/etc/passwd за второй столик
CVE-2026-53435 — уязвимость десериализации, которая позволяет авторизованному пользователю читать произвольные файлы в Jenkins в версиях до 2.567 и LTS до 2.555.2.
🫡 Метрики:
🫡 Об уязвимости:
Для эксплуатации уязвимости злоумышленнику необходимы права Overall/Read, а также как минимум одно из следующих прав:
💡 Item/Configure — чтобы редактировать существующее задание или представлять через POST /config.xml;
💡 View/Configure — чтобы создавать новое представление через POST /createView;
💡 Agent/Configure — чтобы настраивать агентов (если атака идет через агента).
Шаг 1. Обход фильтрации
Jenkins использует XStream для десериализации XML-конфигураций и применяет фильтр ClassFilter (реализация JEP-200), который разрешает создавать только классы из ядра Jenkins или установленных плагинов. Уязвимость позволяет обойти эту защиту, используя разрешенные классы в качестве «гаджетов». Так, например, в публичном эксплойте используется класс hudson.Plugin$DummyImpl из ядра Jenkins. C внедренным в гаджетом:
file:/
Шаг 2. Чтение файла
Stapler — это Java-фреймворк, который связывает объекты Java-кода с URL-адресами. BaseResourceURL обычно относится к путям, используемым Stapler для загрузки статических ресурсов (картинок, стилей, JS-файлов) из плагинов или ядра Jenkins. Подставив в baseResourceURL конструкцию file:/, атакующий получает доступ к корню файловой системы сервера.
🫡 Пример тела запроса:
allfile:/false
🫡 Конечные точки:
/createView — конечная точка для создания нового представления. Пример на скриншоте 1.
/config.xml — конечная точка для редактирования уже имеющегося представления. Пример на скриншоте 2.
/view/{ViewName}/properties/0/{file} — конечная точка загрузки статических ресурсов, которая позволяет читать произвольные файлы.
🫡 Как защищаться:
1) Обновиться.
2) Проверить логи сервера на наличие обращений к /view/{ViewName}/properties/0/{file}, где вместо {file} передаются подозрительные файлы (например, /etc/passwd, конфиги, системные файлы).
3) Написать правила на IDS/WAF, блокирующие POST-запросы на /config.xml или /createView, содержащие file:/.
CVE-2026-53435 — уязвимость десериализации, которая позволяет авторизованному пользователю читать произвольные файлы в Jenkins в версиях до 2.567 и LTS до 2.555.2.
🫡 Метрики:
Base Score: 8.8 HIGH
CWE: CWE-502
🫡 Об уязвимости:
Для эксплуатации уязвимости злоумышленнику необходимы права Overall/Read, а также как минимум одно из следующих прав:
💡 Item/Configure — чтобы редактировать существующее задание или представлять через POST /config.xml;
💡 View/Configure — чтобы создавать новое представление через POST /createView;
💡 Agent/Configure — чтобы настраивать агентов (если атака идет через агента).
Шаг 1. Обход фильтрации
Jenkins использует XStream для десериализации XML-конфигураций и применяет фильтр ClassFilter (реализация JEP-200), который разрешает создавать только классы из ядра Jenkins или установленных плагинов. Уязвимость позволяет обойти эту защиту, используя разрешенные классы в качестве «гаджетов». Так, например, в публичном эксплойте используется класс hudson.Plugin$DummyImpl из ядра Jenkins. C внедренным в гаджетом:
file:/
Шаг 2. Чтение файла
Stapler — это Java-фреймворк, который связывает объекты Java-кода с URL-адресами. BaseResourceURL обычно относится к путям, используемым Stapler для загрузки статических ресурсов (картинок, стилей, JS-файлов) из плагинов или ядра Jenkins. Подставив в baseResourceURL конструкцию file:/, атакующий получает доступ к корню файловой системы сервера.
🫡 Пример тела запроса:
allfile:/false
🫡 Конечные точки:
/createView — конечная точка для создания нового представления. Пример на скриншоте 1.
/config.xml — конечная точка для редактирования уже имеющегося представления. Пример на скриншоте 2.
/view/{ViewName}/properties/0/{file} — конечная точка загрузки статических ресурсов, которая позволяет читать произвольные файлы.
🫡 Как защищаться:
1) Обновиться.
2) Проверить логи сервера на наличие обращений к /view/{ViewName}/properties/0/{file}, где вместо {file} передаются подозрительные файлы (например, /etc/passwd, конфиги, системные файлы).
3) Написать правила на IDS/WAF, блокирующие POST-запросы на /config.xml или /createView, содержащие file:/.