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

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

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

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

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

Категории

Все категории
Loading categories
cve-2026-34486-tomcat_encrypt_bypass_reproduction — CVE Reproduction: cve-2026-34486-tomcat_encrypt_bypass_reproduction | Kitploit
Инструменты/GitHubGitHub/razureink/cve-2026-34486-tomcat_encrypt_bypass_reproduction
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingLearning & Education
GitHubrazureink/cve-2026-34486-tomcat_encrypt_bypass_reproduction

cve-2026-34486-tomcat_encrypt_bypass_reproduction

CVE Reproduction: cve-2026-34486-tomcat_encrypt_bypass_reproduction

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Репозиторий
28 дней назадЕщё не проверено

CVE-2026-34486: Обход EncryptInterceptor в Apache Tomcat

ПолеЗначение
CVECVE-2026-34486
CVSS7.5 HIGH
ТипОтсутствие шифрования конфиденциальных данных
КомпонентApache Tomcat Cluster EncryptInterceptor
Опубликовано2026

Обзор

CVE-2026-34486 — это регрессия, вызванная неполным исправлением для CVE-2026-29146. В кластерной репликации Apache Tomcat за шифрование и аутентификацию кластерных сообщений отвечает EncryptInterceptor. Рефакторинг в исправлении для CVE-2026-29146 случайно переместил вызов super.messageReceived(msg) за пределы блока try-catch, который обрабатывает ошибки расшифровки. В результате, когда сообщение не удаётся расшифровать (т.е. оно получено в открытом виде, но перехватчик ожидает зашифрованные данные), исходное незашифрованное сообщение всё равно передаётся по цепочке обработчиков вместо того, чтобы быть отброшенным.

Технические детали

Регрессия потока кода

Метод EncryptInterceptor.messageReceived() вызывается при поступлении кластерного сообщения. Ожидаемый поток:

  1. Получение исходных байтов сообщения
  2. Расшифровка и проверка сообщения (внутри try-catch)
  3. Если расшифровка успешна, вызов super.messageReceived(msg) для передачи расшифрованного сообщения
  4. Если расшифровка не удалась, отбросить сообщение (или записать ошибку)

В уязвимых версиях логика расшифровки/проверки остаётся обёрнутой в try-catch, но цепочка вызовов была перестроена так, что super.messageReceived(msg) выполняется за пределами блока try-catch, защищающего расшифровку. Переменная msg объявляется до try-catch и присваивается внутри него. Когда расшифровка вызывает исключение, msg сохраняет своё исходное (незашифрованное/сырое) значение, а блок catch только записывает ошибку — он не выполняет досрочный возврат. Выполнение продолжается до super.messageReceived(msg) с необработанными сырыми данными.

Это означает, что злоумышленник, имеющий доступ к порту кластера Tomcat, может отправлять произвольные незашифрованные сообщения, которые перехватчик примет и обработает.

Упрощённый псевдокод ошибки

root@kitploit:~
public void messageReceived(Message msg) {
    // msg arrives raw
    try {
        // decrypt and populate msg fields
        decrypt(msg);
    } catch (Exception e) {
        log.error("Decryption failed", e);
        // BUG: no return statement here
    }
    // msg is still the original unencrypted object when catch is hit
    super.messageReceived(msg); // outside try-catch → passes raw data
}

Исправление должно гарантировать, что либо:

  • super.messageReceived(msg) вызывается только внутри блока try после успешной расшифровки, либо
  • Блок catch немедленно выполняет возврат, чтобы незашифрованное сообщение никогда не передавалось.

Затронутые версии

ПродуктВерсии
Apache Tomcat 1111.0.20
Apache Tomcat 1010.1.53
Apache Tomcat 99.0.116

Воспроизведение

Предварительные требования

  • Уязвимый экземпляр Tomcat с включённой кластерной репликацией с использованием EncryptInterceptor
  • Сетевой доступ к порту кластера Tomcat (обычно 4000 или 5000, настраивается через <Receiver>)
  • Python 3.6+

Шаги

  1. Определите участник кластера Tomcat с настроенным EncryptInterceptor в server.xml.
  2. Определите адрес и порт приёмника кластера.
  3. Запустите скрипт эксплойта, чтобы отправить специально сформированное сырое кластерное сообщение.
  4. Обратите внимание, что сообщение принимается и логируется приёмником, обходя проверку шифрования.

PoC

Скрипт exploit.py в этом каталоге демонстрирует обход. Он создаёт минимальное кластерное сообщение Tomcat (на основе формата сериализации ClusterMessage) и отправляет его напрямую на порт приёмника без какого-либо шифрования. Уязвимый перехватчик примет и передаст сообщение, несмотря на отсутствие шифрования.

Смягчение

Обновитесь до исправленной версии Apache Tomcat:

ПродуктИсправленная версия
Apache Tomcat 1111.0.21+
Apache Tomcat 1010.1.54+
Apache Tomcat 99.0.117+

Если немедленное обновление невозможно, ограничьте сетевой доступ к порту кластера Tomcat только доверенными узлами (например, с помощью правил брандмауэра или привязки приёмника к интерфейсу loopback или частному интерфейсу).

Ссылки

  • CVE-2026-34486
  • CVE-2026-29146 (исходная уязвимость)
  • Рекомендации по безопасности Apache Tomcat
  • Документация EncryptInterceptor
Скачать инструмент