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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-12543-Fix-for-Wildfly — Базовый образ Docker с обратно портированным исправлением проверки заголовка Host для CVE-2025-12543 в Undertow 1.4.x, обеспечивающий безопасное развертывание приложений WildFly 11. | Kitploit
Инструменты/GitHubGitHub/kavin71725/cve-2025-12543-fix-for-wildfly
Безопасность облачной инфраструктурыБезопасность контейнеровАнализ уязвимостейВеб-безопасностьDevSecOpsБезопасность Цепочки ПоставокНеправильная Конфигурация
GitHub
kavin71725/cve-2025-12543-fix-for-wildfly

CVE-2025-12543-Fix-for-Wildfly

Базовый образ Docker с обратно портированным исправлением проверки заголовка Host для CVE-2025-12543 в Undertow 1.4.x, обеспечивающий безопасное развертывание приложений WildFly 11.

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

Популярное

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

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

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

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

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

WildFly 11.0.0.Final Базовый образ — исправление CVE-2025-12543

Обзор

Этот репозиторий предоставляет базовый Docker-образ, построенный на WildFly 11.0.0.Final с бэкпортированным исправлением для CVE-2025-12543 — критической уязвимости проверки заголовка Host в Undertow.

Образ предназначен для передачи коллегам в качестве базового. Они могут развернуть своё .war-приложение и standalone.xml поверх него.


CVE-2025-12543 Сводка

ПолеДетали
CVE IDCVE-2025-12543
Компонентio.undertow:undertow-core
СерьёзностьКритическая (CVSS 9.6)
Затронутые версииВсе версии < 2.2.39 (включая 1.4.x)
Исправлено вUndertow 2.2.39 / 2.3.22
Версия WildFly 11undertow-core-1.4.18.Final — затронута

Описание уязвимости

Undertow неправильно проверяет заголовок Host во входящих HTTP-запросах. Запросы, содержащие некорректные или вредоносные заголовки Host, обрабатываются без отклонения, что позволяет:

  • Отравление кеша
  • Угон сессии
  • Сканирование внутренней сети
  • Смешивание данных разных арендаторов / обход границ доверия

Почему не обновлять WildFly?

Другие пользователи всё ещё используют WildFly 11, и в настоящее время нет ресурсов или планов на обновление. Исправление было бэкпортировано непосредственно в JAR-файл Undertow 1.4.18.Final.


Структура репозитория

.
├── Dockerfile                                  # Основное описание образа
├── README.md
├── wildfly-dist-11.0.0.Final.tar.gz           # Дистрибутив WildFly 11
├── reports/
│   ├── result-20260401-0230.txt               # Отчёт сканирования CVE, выявивший уязвимость
│   └── wildfly_11.0.0.Final_*.txt             # Дополнительные отчёты сканирования
└── patch/
    ├── src/
    │   ├── HostHeaderHandler.java             # Бэкпортированное исправление — новый класс обработчика
    │   ├── HttpReadListener_only.java         # Декомпилированный и пропатченный исходный код HttpReadListener (справочно)
    │   └── PatchHttpReadListener.java         # Инструмент для патчинга байт-кода с помощью Javassist
    ├── build.sh                               # Скрипт сборки — пересобирает пропатченный JAR с нуля
    ├── undertow-core-1.4.18.Final.jar         # Оригинальный (не пропатченный) JAR — сохранён для справки
    └── undertow-core-1.4.18.Final-patched.jar # Пропатченный JAR, внедряемый в образ

Детали файлов

Dockerfile

Строит конечный образ. Он:

  1. Использует bitnamilegacy/java:1.8.432-7-debian-12-r2 (OpenJDK 1.8.0_432) в качестве базового
  2. Извлекает WildFly 11 в /opt/jboss/wildfly
  3. Заменяет оригинальный undertow-core-1.4.18.Final.jar на пропатченную версию
  4. Запускает WildFly через standalone.sh -b 0.0.0.0 (привязка ко всем интерфейсам)

patch/undertow-core-1.4.18.Final-patched.jar

Пропатченный JAR Undertow. Он идентичен оригиналу, за исключением двух изменений:

  • Добавлено: io/undertow/server/handlers/HostHeaderHandler.class (и его внутренние классы)
  • Изменено: io/undertow/server/protocol/http/HttpReadListener.class — внедряет HostHeaderHandler в конвейер запросов

patch/src/HostHeaderHandler.java

Бэкпортированный обработчик проверки заголовка Host. Портирован из PR Undertow #1857 (UNDERTOW-2656).

Все константы (IP4_EXACT, IP6_EXACT, таблицы символов) являются самодостаточными — без зависимости от API, добавленных в Undertow 2.x. При каждом HTTP-запросе проверяется:

  • Наличие заголовка Host (обязателен для HTTP/1.1)
  • Ровно один заголовок Host (без дубликатов)
  • Порт является числовым и находится в диапазоне 1–65535
  • IP-литералы (IPv4, IPv6, IPvFuture) корректны
  • Символы имени хоста являются допустимыми символами reg-name RFC 3986
  • При любом нарушении возвращается 400 Bad Request

patch/src/PatchHttpReadListener.java

Одноразовый патчер байт-кода с использованием Javassist. Он загружает HttpReadListener из оригинального JAR и заменяет:

// Было
Connectors.executeRootHandler(connection.getRootHandler(), exchange);

// Стало
Connectors.executeRootHandler(
    HostHeaderHandler.WRAPPER.wrap(connection.getRootHandler()),
    exchange
);

Это автоматически внедряет HostHeaderHandler в каждый HTTP-запрос без необходимости полной перекомпиляции HttpReadListener (который зависит от сложных внутренних классов и внутренностей xnio).

patch/src/HttpReadListener_only.java

Декомпилированный исходный код оригинального HttpReadListener из Undertow 1.4.18.Final, используемый в качестве справки для определения точки внедрения. Пропатченная версия этого исходного кода также сохранена для целей аудита.

reports/result-20260401-0230.txt

Отчёт сканирования CVE (сгенерирован 2026-04-01), который выявил CVE-2025-12543 в undertow-core-1.4.18.Final по пути:

/opt/jboss/wildfly/modules/system/layers/base/io/undertow/core/main/undertow-core-1.4.18.Final.jar

Процедура патча

1. Выявление уязвимости

Отчёт сканирования (result-20260401-0230.txt) подтвердил, что undertow-core-1.4.18.Final подвержен CVE-2025-12543 (CVSS 9.6).

2. Исследование официального исправления

Исправление находится в PR Undertow #1857, объединённом в main (2026-01-09) и бэкпортированном в ветки 2.2.x и 2.3.x. Исправление добавляет HostHeaderHandler.java и встраивает его в HttpReadListener для проверки заголовка Host в каждом запросе.

3. Оценка возможности прямого обновления

Undertow 1.4.x → 2.2.x — это переход на мажорную версию с ломающими изменениями API. WildFly 11 тесно связан с Undertow 1.4.x через JBoss Modules. Простая замена JAR приведёт к ClassNotFoundException / NoSuchMethodError при запуске.

4. Бэкпорт HostHeaderHandler.java

Написать самодостаточную версию HostHeaderHandler.java, совместимую с Undertow 1.4.18.Final:

  • Встроить все regex-константы (IP4_EXACT, IP6_EXACT) — недоступны в NetworkUtils версии 1.4.x
  • Удалить exchange.isHostIncludedInRequestURI() — недоступен в HttpServerExchange версии 1.4.x
  • Сохранить всю логику проверки идентичной официальному исправлению

Скомпилировать с classpath Undertow 1.4.18 + xnio внутри образа WildFly:

javac -cp undertow-core-1.4.18.Final.jar:xnio-api-3.5.4.Final.jar:jboss-logging-3.3.1.Final.jar \
      -d out HostHeaderHandler.java

5. Патч HttpReadListener через Javassist

Декомпилировать HttpReadListener с помощью Procyon, чтобы найти точку внедрения:

Connectors.executeRootHandler(this.connection.getRootHandler(), httpServerExchange);

находится в handleEventWithNoRunningRequest().

Поскольку HttpReadListener имеет анонимные внутренние классы ($1, $2, $3), на которые нельзя сослаться из декомпилированного исходного кода, полная перекомпиляция невозможна. Вместо этого используйте Javassist (PatchHttpReadListener.java) для инструментирования байт-кода напрямую — заменив вызов executeRootHandler, чтобы обернуть корневой обработчик с помощью HostHeaderHandler.WRAPPER.

java -cp javassist.jar:undertow-core-1.4.18.Final.jar:out \
     PatchHttpReadListener undertow-core-1.4.18.Final.jar out/

6. Переупаковка JAR

Скопировать оригинальный JAR и внедрить пропатченные/новые файлы классов:

cp undertow-core-1.4.18.Final.jar undertow-core-1.4.18.Final-patched.jar
jar uf undertow-core-1.4.18.Final-patched.jar \
    -C out io/undertow/server/handlers/HostHeaderHandler.class \
    -C out "io/undertow/server/handlers/HostHeaderHandler\$Wrapper.class" \
    -C out "io/undertow/server/handlers/HostHeaderHandler\$1.class" \
    -C out io/undertow/server/protocol/http/HttpReadListener.class

7. Обновление Dockerfile

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