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-34486-tomcat_encrypt_bypass_reproduction — Reproducción de CVE: cve-2026-34486-tomcat_encrypt_bypass_reproduction | Kitploit
Herramientas/GitHubGitHub/razureink/cve-2026-34486-tomcat_encrypt_bypass_reproduction
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de PenetraciónAprendizaje y Educación
GitHubrazureink/cve-2026-34486-tomcat_encrypt_bypass_reproduction

cve-2026-34486-tomcat_encrypt_bypass_reproduction

Reproducción de CVE: cve-2026-34486-tomcat_encrypt_bypass_reproduction

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
Ver Repositorio
hace 28 díasAún no revisado

CVE-2026-34486: Omisión del EncryptInterceptor de Apache Tomcat

CampoValor
CVECVE-2026-34486
CVSS7.5 HIGH
TipoFalta de cifrado de datos sensibles
ComponenteApache Tomcat Cluster EncryptInterceptor
Publicado2026

Resumen

CVE-2026-34486 es una regresión introducida por la corrección incompleta de CVE-2026-29146. En la replicación de clúster de Apache Tomcat, el EncryptInterceptor es responsable de cifrar y autenticar los mensajes del clúster. Una refactorización en la corrección de CVE-2026-29146 movió inadvertidamente la llamada a super.messageReceived(msg) fuera del bloque try-catch que maneja los fallos de descifrado. Como resultado, cuando un mensaje falla al descifrarse (es decir, se recibe en texto plano pero el interceptor espera datos cifrados), el mensaje sin cifrar se pasa igualmente a la cadena de manejadores en lugar de descartarse.

Detalles técnicos

Flujo de código con la regresión

El método EncryptInterceptor.messageReceived() se invoca cuando llega un mensaje del clúster. El flujo esperado es:

  1. Recibir los bytes del mensaje sin procesar
  2. Descifrar y validar el mensaje (dentro de un try-catch)
  3. Si el descifrado tiene éxito, llamar a super.messageReceived(msg) para reenviar el mensaje descifrado
  4. Si el descifrado falla, descartar el mensaje (o registrar un error)

En las versiones vulnerables, la lógica de descifrado/validación permanece envuelta en un try-catch, pero la cadena de llamadas se reestructuró de modo que super.messageReceived(msg) se ejecuta fuera del bloque try-catch que protege el descifrado. La variable msg se declara antes del try-catch y se asigna dentro de él. Cuando el descifrado lanza una excepción, msg conserva su valor inicial (sin cifrar/sin procesar), y el bloque catch solo registra el error — no retorna temprano. La ejecución continúa hacia super.messageReceived(msg) con los datos sin procesar.

Esto significa que un atacante que pueda alcanzar el puerto del clúster de Tomcat puede inyectar mensajes arbitrarios sin cifrar que el interceptor aceptará y procesará.

Pseudocódigo simplificado del error

root@kitploit:~
public void messageReceived(Message msg) {
    // msg llega sin procesar
    try {
        // descifrar y rellenar los campos de msg
        decrypt(msg);
    } catch (Exception e) {
        log.error("Falló el descifrado", e);
        // ERROR: no hay declaración return aquí
    }
    // msg sigue siendo el objeto original sin cifrar cuando se alcanza el catch
    super.messageReceived(msg); // fuera del try-catch → pasa datos sin procesar
}

La corrección debe garantizar que:

  • super.messageReceived(msg) se llame solo dentro del bloque try después de un descifrado exitoso, o
  • El bloque catch retorne inmediatamente para que nunca se reenvíe el mensaje sin cifrar.

Versiones afectadas

ProductoVersiones
Apache Tomcat 1111.0.20
Apache Tomcat 1010.1.53
Apache Tomcat 99.0.116

Reproducción

Requisitos previos

  • Una instancia de Tomcat vulnerable con replicación de clúster habilitada usando el EncryptInterceptor
  • Acceso de red al puerto del clúster de Tomcat (comúnmente 4000 o 5000, configurado mediante <Receiver>)
  • Python 3.6+

Pasos

  1. Identifique un miembro del clúster de Tomcat que tenga configurado el EncryptInterceptor en server.xml.
  2. Determine la dirección y el puerto del receptor del clúster.
  3. Ejecute el script de explotación para enviar un mensaje de clúster sin procesar manipulado.
  4. Observe que el mensaje es aceptado y registrado por el receptor, omitiendo la validación de cifrado.

PoC

El script exploit.py en este directorio demuestra la omisión. Construye un mensaje mínimo de clúster de Tomcat (basado en el formato de serialización de ClusterMessage) y lo envía directamente al puerto del receptor sin ningún cifrado. Un interceptor vulnerable aceptará y reenviará el mensaje a pesar de la falta de cifrado.

Mitigación

Actualice a una versión parcheada de Apache Tomcat:

ProductoVersión parcheada
Apache Tomcat 1111.0.21+
Apache Tomcat 1010.1.54+
Apache Tomcat 99.0.117+

Si no es posible actualizar de inmediato, restrinja el acceso de red al puerto del clúster de Tomcat solo a hosts de confianza (por ejemplo, mediante reglas de firewall o vinculando el receptor a una interfaz loopback o privada).

Referencias

  • CVE-2026-34486
  • CVE-2026-29146 (vulnerabilidad original)
  • Avisos de seguridad de Apache Tomcat
  • Documentación de EncryptInterceptor
Descargar herramienta