Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-85312 — Reproductor de prueba de concepto ejecutable para CVE-2026-85312, que demuestra el secuestro de saga de Apache Camel mediante el encabezado Long-Running-Action en Spring Boot y Quarkus. | Kitploit
Herramientas/GitHubGitHub/oscerd/cve-2026-85312
Herramientas DefensivasAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebAprendizaje y Educación
GitHuboscerd/cve-2026-85312

CVE-2026-85312

Reproductor de prueba de concepto ejecutable para CVE-2026-85312, que demuestra el secuestro de saga de Apache Camel mediante el encabezado Long-Running-Action en Spring Boot y Quarkus.

Ver Repositorio
7hace 1 díaAú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-85312 — camel-core: secuestro de saga mediante la cabecera Long-Running-Action

Reproductor de prueba de concepto ejecutable para la vulnerabilidad de Apache Camel en la que el SagaProcessor de camel-core seleccionaba el coordinador de saga a partir de la cabecera de mensaje Long-Running-Action en cada exchange. Ese nombre de cabecera no lleva el prefijo Camel, por lo que queda fuera del espacio de nombres que los filtros de cabeceras de consumidor eliminan — un remitente externo podría proporcionarla en un mensaje entrante y, de ese modo, nombrar la saga a la que se une su exchange, vinculando su petición a una acción de larga duración iniciada por otra persona (o asociando la compensación con una acción que no iniciaron). La exposición está acotada a despliegues que ejecutan sagas, pero donde aplica el remitente controla a qué saga pertenece un exchange (CWE-20).

RuntimeDirectorioStack
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-spring-boot 4.22.0 (afectado; corregido en 4.22.1)
Camel Quarkuscamel-quarkus/Quarkus 3.39.0 + camel-quarkus-saga (Camel 4.22.0, afectado; control corregido CQ 3.40.0 / Camel 4.22.1)

Ambos módulos demuestran el comportamiento afectado y el corregido frente al SagaProcessor real de camel-core.

Qué demuestra

El driver replica la propia prueba de regresión de la corrección (SagaHeaderCannotSelectCoordinatorTest). Construye una ruta de saga from("direct:…").saga().propagation(MANDATORY) respaldada por un servicio de saga en memoria que registra cada id que se le pide resolver, y luego envía un exchange que lleva la cabecera entrante Long-Running-Action = a-saga-id-from-the-wire — el id que un remitente externo colocaría en el cable. El oráculo es simplemente qué ids de saga llegan al servicio:

  • Afectado: el procesador recurre a la cabecera, por lo que se busca el id proporcionado en el cable a-saga-id-from-the-wire — el mensaje eligió el coordinador.
  • Corregido: la cabecera solo se consulta para un servicio de saga que anuncia soporte para ella (el servicio en memoria no lo hace), por lo que el id proporcionado en el cable nunca se busca.

En ambas compilaciones el exchange MANDATORY acaba fallando (no hay una saga real a la que unirse) — la vulnerabilidad no es el fallo, sino que se usó un id elegido por el atacante para seleccionar el coordinador, razón por la cual el oráculo observa la búsqueda en lugar del resultado.

# Camel Spring Boot
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected: wire id looked up = true; >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -jar target/cve-2026-85312-saga-header-hijack-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: wire id looked up = false; >>> Not exploited
# Camel Quarkus
cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected (Camel 4.22.0): wire id looked up = true
docker compose down
# Patched control: CQ 3.40.0 ships Camel 4.22.1
mvn clean package -Dcamel-quarkus.version=3.40.0 -Dquarkus.platform.version=3.40.0
java -jar target/quarkus-app/quarkus-run.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: wire id looked up = false

Resumen de la vulnerabilidad

PropiedadValor
Componentecamel-core (SagaProcessor.getCurrentSagaCoordinator)
CWECWE-20 (Validación de entrada incorrecta)
GravedadMEDIA
Vector de ataqueUn remitente externo proporciona el encabezado Long-Running-Action sin prefijo en un mensaje entrante a una ruta que ejecuta el EIP saga
ImpactoEl remitente nombra la saga a la que se une un exchange — adjuntándose a la acción de larga duración de otra parte, o asociando incorrectamente la compensación
Versiones afectadasDesde 4.0.0 anterior a 4.18.5, desde 4.19.0 anterior a 4.22.1
Versiones corregidas4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24449
CréditoClaude Security Scan Tool

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

El módulo afectado de Quarkus está construido sobre CQ 3.39.0 (Camel 4.22.0). El control parcheado es CQ 3.40.0 (Camel 4.22.1).

La corrección

SagaProcessor ahora consulta el encabezado Long-Running-Action solo cuando el servicio saga anuncia que participa en dicho protocolo, mediante el nuevo CamelSagaService.isLongRunningActionHeaderSupported() (por defecto false; el servicio LRA lo sobrescribe a true). El estado interno del exchange — que sobrevive a removeHeaders("*") — sigue siendo el portador normal del id de la saga, por lo que un mensaje ya no puede elegir el coordinador para un servicio que no ejecuta ningún coordinador externo.

Mitigación si no puede actualizar

Elimine el encabezado en el límite de confianza con removeHeaders("Long-Running-Action") en cada consumidor que acepte mensajes de un remitente no confiable.

Descargo de responsabilidad

Este repositorio se publica con fines educativos y defensivos: para ayudar a los usuarios de Apache Camel a comprender la vulnerabilidad, verificar si se ven afectados y confirmar que la actualización la resuelve. La demostración ejecuta una ruta saga en proceso con un servicio saga en memoria; el id de saga del "atacante" es una cadena de marcador de posición benigna. No utilice este material contra sistemas que no sean de su propiedad o que no opere.

Descargar herramienta