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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-88901 — Запускаемый proof-of-concept на Spring Boot, воспроизводящий CVE-2026-88901 — уязвимость XXE (CWE-611) в Apache Camel camel-smooks, с контрольными запусками уязвимой и исправленной версий. | Kitploit
Инструменты/GitHubGitHub/oscerd/cve-2026-88901
Оборонительные ИнструментыАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьОбучение и Образование
GitHuboscerd/cve-2026-88901

CVE-2026-88901

Запускаемый proof-of-concept на Spring Boot, воспроизводящий CVE-2026-88901 — уязвимость XXE (CWE-611) в Apache Camel camel-smooks, с контрольными запусками уязвимой и исправленной версий.

Репозиторий
31 день назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2026-88901 — camel-smooks: обработка внешних XML-сущностей (XXE)

Запускаемый воспроизводитель proof-of-concept для уязвимости Apache Camel, при которой формат данных Smooks (.unmarshal().smooks(...)) и компонент Smooks (smooks:) разбирали входящее XML-тело с помощью ридера, который Smooks выбирает по умолчанию (SAX-парсер Woodstox), а он разрешает внешние общие и параметрические сущности и загружает внешние DTD — и camel-smooks не применял ни одного из мер по усилению безопасности парсера, которые применяют другие XML-компоненты Camel. Поэтому DOCTYPE с внешним подмножеством или внешняя общая сущность, объявленные в XML-документе, разрешаются и раскрываются при демаршалинге тела, а разрешённое содержимое привязывается к результату. Внешний отправитель, чей XML достигает формата данных или эндпоинта camel-smooks, мог бы прочитать файлы, доступные процессу Camel, или заставить процесс отправлять запросы на внутренние хосты (CWE-611). Никакая нестандартная опция не требуется — разрешение внешних сущностей было поведением по умолчанию.

Только Spring Boot. Этот воспроизводитель содержит единственный модуль Camel Spring Boot. У camel-smooks нет расширения camel-quarkus-smooks, поэтому аналога для Quarkus для воспроизведения нет. Модуль Spring Boot демонстрирует как уязвимое, так и исправленное поведение.

Среда выполненияКаталогСтек
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-smooks 4.22.0 (уязвимая; исправлено в 4.22.1)

Что демонстрируется

Драйвер повторяет собственный регрессионный тест исправления (SmooksDataFormatXmlSecurityTest). Безвредный файл-маркер записывается во временный каталог, и XML-документ <customer> демаршалится через настоящий SmooksDataFormat со стандартным smooks-config.xml (привязывающим документ к бину Customer). Поле firstName документа является внешней сущностью, указывающей на файл-маркер:

<!DOCTYPE customer [<!ENTITY xxe SYSTEM "file:///…/secret.txt">]>
<customer><firstName>&xxe;</firstName>…</customer>
  • Уязвимо: сущность разрешается, поэтому содержимое файла-маркера попадает в Customer.firstName — файл утекает в десериализованный бин.
  • Исправлено: тело предварительно разбирается с помощью усиленного DocumentBuilder (загрузка внешних сущностей и внешних DTD отключена), поэтому сущность не разрешается и маркер никогда не появляется.
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected: firstName = the marker file content; >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -jar target/cve-2026-88901-smooks-xxe-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: firstName null, marker not leaked; >>> Not exploited

Сводка уязвимости

СвойствоЗначение
Компонентcamel-smooks (формат данных и компонент Smooks)
CWECWE-611 (Ненадлежащее ограничение ссылки на внешнюю сущность XML)
КритичностьВЫСОКАЯ
Вектор атакиВнешний отправитель передаёт тело XML-сообщения, демаршализуемое форматом данных или эндпоинтом camel-smooks с использованием XML-ридера по умолчанию
ВоздействиеЧтение локальных файлов, доступных процессу Camel; SSRF на внутренние хосты, указанные в документе
Затронутые версииС 4.7.0 до 4.18.5, с 4.19.0 до 4.22.1
Исправленные версии4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24677
Сообщилh1ei1

Уведомление: https://camel.apache.org/security/CVE-2026-88901.html

Исправление

camel-smooks теперь предварительно разбирает недоверенный XML с помощью javax.xml.parsers.DocumentBuilder, настроенного с FEATURE_SECURE_PROCESSING и с отключённой загрузкой внешних общих сущностей, внешних параметрических сущностей и внешних DTD, и передаёт Smooks полученный DOM — в соответствии с безопасной конфигурацией, используемой XmlConverter и другими XML-компонентами Camel. Усиление защиты применяется только когда конфигурация Smooks разбирает XML с помощью своего ридера по умолчанию (таким образом, конфигурации EDI, CSV, JSON и с пользовательским ридером, а также направление маршалинга остаются без изменений). Новая опция allowExternalEntities, отключённая по умолчанию, восстанавливает прежнее поведение для доверенных устаревших конфигураций.

Меры защиты, если вы не можете обновиться

Не применяйте camel-smooks к XML, полученному от недоверенных отправителей.

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

Этот репозиторий публикуется в образовательных и защитных целях: чтобы помочь пользователям Apache Camel понять уязвимость, проверить, затронуты ли они, и убедиться, что обновление её устраняет. Файл «secret» создаётся самим воспроизведением во временном каталоге и содержит только безвредную строку-маркер; он удаляется после проверки. Не используйте этот материал против систем, которыми вы не владеете и не управляете.

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