Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-53435 — Наступательный исследователь безопасности + ИИ против свежего n-day: создание первого публичного PoC для CVE-2026-53435 за одну пятничную ночь. Внутри сырой журнал продолжительностью 8ч20м. | Kitploit
Инструменты/GitHubGitHub/amesianx/cve-2026-53435
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеЭксплуатация Бинарных Файлов
GitHubamesianx/cve-2026-53435

CVE-2026-53435

Наступательный исследователь безопасности + ИИ против свежего n-day: создание первого публичного PoC для CVE-2026-53435 за одну пятничную ночь. Внутри сырой журнал продолжительностью 8ч20м.

Репозиторий
112163 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-53435 — Десериализация Jenkins → Произвольное чтение файлов (PoC)

Первое публичное доказательство концепции для CVE-2026-53435, созданное, когда существовало только уведомление, а PoC нигде не был опубликован. Восстановлено из расплывчатого однострочного уведомления за ~8,5 часов пятничным вечером — не путём написания эксплойта вручную, а направляя ИИ через тупики, развороты и проверку, пока не получилась рабочая цепочка.

PoC CVE-2026-53435, читающий /etc/passwd из контроллера Jenkins

PoC, обращающийся к /etc/passwd на контроллере — произвольное чтение файлов подтверждено.

CVECVE-2026-53435 (Jenkins SECURITY-3707)
КлассНебезопасная десериализация (обход ClassFilter через config.xml)
Воздействие (данный PoC)Произвольное чтение файлов на контроллере от аутентифицированного пользователя
Затронутые версииJenkins weekly ≤ 2.567, LTS ≤ 2.555.2
Исправлено вJenkins weekly 2.568, LTS 2.555.3
Уведомлениеhttps://www.jenkins.io/security/advisory/2026-06-10/ (опубликовано 2026-06-10)
Статус на момент написанияНе было публичных PoC (репозитории PoC на GitHub: 0)

Зачем этот репозиторий

Это эксперимент, показывающий процесс, а не только артефакт.

Долгое время результатом работы исследователя атак был один готовый эксплойт — 8 часов неверных поворотов, которые его породили, исчезали. Этот репозиторий сохраняет неверные повороты. Полная, слегка отредактированная стенограмма совместной работы человека и ИИ над свежей n-day-уязвимостью от уведомления до работающего PoC включена в приложение.

Смысл в том, что это намеренно не «ИИ сделал это». 8 часов — доказательство того, что это не так. ИИ ни разу не создал цепочку с одного захода. Работу продвигала экспертиза предметной области — понимание, что в уведомлении скрыт сток десериализации, знание, что нужно искать в основных типах Jenkins, а не в плагинах, знание, что DescribableList до исправления не проверяет тип элемента, и умение проверять утверждение, а не доверять ему. Ценность исследователя не исчезла; она сместилась с набора эксплойта на управление, отсев и валидацию.

Этот сдвиг — то, что стоит задокументировать.


Уязвимость (коренная причина)

Jenkins защищает десериализацию с помощью пользовательского ClassFilter, который разрешает только типы, определённые в ядре Jenkins или плагинах. CVE-2026-53435 заключается в том, что этого недостаточно: злоумышленник, способный отправить POST с config.xml, может заставить Jenkins десериализовать произвольный тип ядра/плагина в контекст, который его не ожидал, а затем получить доступ к этому объекту через HTTP с помощью маршрутизации Stapler.

Этот PoC внедряет hudson.Plugin$DummyImpl (тип ядра Jenkins, поэтому проходит белый список расположений) в список <properties> представления ListView — DescribableList<ViewProperty>, который до исправления не проверяет тип элемента. Внедрённый объект содержит baseResourceURL=file:/. При маршрутизации HTTP-запроса к нему файлы обслуживаются напрямую из файловой системы контроллера.

Обычная цепочка ysoserial здесь не сработает — гаджет должен быть типом, присутствующим в Jenkins/плагинах, чтобы пройти фильтр. Это ограничение и есть вся суть.


Область применения и ответственное раскрытие

  • Этот PoC демонстрирует только воздействие произвольного чтения файлов.
  • Уведомление также описывает подмену пользователя и RCE через Script Console с помощью того же примитива. Эти цепочки были достигнуты в ходе исследования, но намеренно не раскрыты здесь: CVE был исправлен всего за несколько дней до публикации, и готовый RCE в основном послужил бы массовой эксплуатации незапатченных экземпляров. Чтения файлов достаточно, чтобы доказать воздействие.
  • Уязвимость уже исправлена. Все тесты проводились в локальной изолированной лаборатории (см. ниже) на собственной машине автора. Внешние или сторонние системы не затрагивались.

Используйте только против систем, которыми вы владеете или на тестирование которых у вас есть явное разрешение.


Подтверждение: работает на уязвимой, не работает на исправленной

Эксплойт был запущен на двух контейнерах с идентичной конфигурацией — уязвимом 2.555.2 и исправленном 2.555.3 — чтобы подтвердить, что он использует этот CVE, а не какой-то другой примитив чтения файлов:

2.555.2 (уязвимая)2.555.3 (исправленная)
createViewHTTP 200HTTP 200
Сохранённые <properties><hudson.Plugin_-DummyImpl/> — выживает<properties/> — удалено
Запрос → /etc/passwdroot:x:0:0:... — прочитанопусто — заблокировано

Исправленная сборка принимает запрос, но исправление отклоняет внедрённый тип во время десериализации, поэтому список свойств возвращается пустым, и маршрутизировать нечего. Отказ происходит именно на том механизме, который описывает уведомление, — что и делает это настоящим PoC для CVE-2026-53435.


Использование

python3 exploit_cve_2026_53435_v2.py <base_url> <user> <pass> <remote_file> [view_name]

# example (against your own lab):
python3 exploit_cve_2026_53435_v2.py http://127.0.0.1:8080 <user> <pass> /etc/passwd
  • base_url — http://host:port цели (обычный HTTP; не добавляйте префикс https, если экземпляр на самом деле не завершает TLS).
  • Требуется учётная запись с разрешением на отправку POST с config.xml представления (View/Configure), а также Overall/Read.

Воспроизведение лаборатории

docker compose -f lab/docker-compose.yml up -d
#   vulnerable:  http://127.0.0.1:8080   (Jenkins LTS 2.555.2)
#   patched:     http://127.0.0.1:8081   (Jenkins LTS 2.555.3, negative control)

Лаборатория предоставляет локальную базу пользователей через инициализацию Groovy, чтобы путь с аутентифицированным низкопривилегированным пользователем можно было протестировать без внешнего IdP.


Хронология — ~8,5 часов, одной пятничной ночью

2026-06-12 (Пт)  15:00 → 23:23   ≈ 8ч 20м

  15:00–15:12   Сборка лаборатории (docker: vuln 2.555.2 / patched 2.555.3) + первая разведка
  15:12–21:00   Анализ стока десериализации и гаджетов
                  (Попытки обхода Commons-Collections провалились → переход
                   от properties к actions и обратно)
  21:00–22:30   Анализ ClassFilter + повторный поиск гаджетов, ограниченных типами ядра
  22:30–23:00   Рабочий PoC (v1 → v2) + дифференциальная верификация (vuln vs patched)

Большую часть этих часов занял анализ, а не набор. Сам эксплойт собрался за последние ~30 минут — как только были известны правильный сток и гаджет.


Как это было создано

Создано с помощью Claude Code (Anthropic), интерактивно управлялось автором:

  • Основная модель: Claude Opus 4.8 (Claude Max)
  • Частично: Claude Fable 5 (уровень Mythos)

Полная, слегка отредактированная рабочая стенограмма находится в transcript/ — сохранена в сыром виде, включая тупики. (Отредактировано только для смягчения тона некоторых строк и маскировки деталей локальной сети; ничего технического не удалено.)


Отказ от ответственности

Только для авторизованного тестирования безопасности, исследований и образования. Автор и участники не несут ответственности за неправомерное использование. Целевая уязвимость исправлена — обновитесь до Jenkins LTS 2.555.3 / weekly 2.568 или новее.

Скачать инструмент