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-85245 — Prueba de concepto ejecutable de Spring Boot que reproduce CVE-2026-85245, una divulgación de datos entre intercambios de camel-thrift, con comparación entre versión afectada y corregida y notas de mitigación. | Kitploit
Herramientas/GitHubGitHub/oscerd/cve-2026-85245
Herramientas DefensivasAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebAprendizaje y Educación
GitHuboscerd/cve-2026-85245

CVE-2026-85245

Prueba de concepto ejecutable de Spring Boot que reproduce CVE-2026-85245, una divulgación de datos entre intercambios de camel-thrift, con comparación entre versión afectada y corregida y notas de mitigación.

Ver Repositorio
hace 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-85245 — camel-thrift: divulgación de datos entre exchanges (defaultInstance compartida)

Reproductor de prueba de concepto ejecutable para la vulnerabilidad de Apache Camel en la que el formato de datos Thrift deserializaba en la defaultInstance compartida del tipo destino en lugar de en una copia nueva, y devolvía ese objeto compartido como cuerpo del exchange. Dado que la instancia se comparte en todo el proceso, el estado escrito al deserializar un mensaje permanecía en el objeto y era visible para todos los mensajes posteriores que usaran el mismo tipo. Los campos ausentes en una carga útil posterior conservaban los valores del mensaje anterior, por lo que el contenido perteneciente a un remitente podía leerse mientras se procesaba el mensaje de otro remitente, y los exchanges concurrentes podían observar el estado parcialmente escrito de los demás. En un despliegue que atiende a más de un inquilino o usuario a través de la misma ruta, eso supone la divulgación de los datos de una parte a otra.

Solo Spring Boot. No existe una extensión camel-quarkus-thrift, por lo que este reproductor incluye un único módulo Camel Spring Boot. (El fallo está en el ThriftDataFormat del componente, que es independiente del runtime).

RuntimeDirectorioStack
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-thrift 4.22.0 (afectado; corregido en 4.22.1)

Qué demuestra

Una ruta define un único ThriftDataFormat (respaldado por el tipo Thrift generado Work) y lo reutiliza para cada mensaje, como hacen normalmente las rutas. Dos inquilinos envían un mensaje a través de él:

  • inquilino A: Work{num1=1, op=ADD, comment="TENANT-A-SECRET-…"} — el campo opcional comment transporta datos sensibles;
  • inquilino B: Work{num1=3, op=SUBTRACT} — sin campo comment.

La ruta deserializa el mensaje del inquilino A y luego el del inquilino B.

  • Afectado: el objeto deserializado del inquilino B vuelve llevando el comment del inquilino A — Thrift solo asigna los campos presentes en los bytes entrantes, y ambos mensajes se deserializaron en (y se devolvieron como) la misma instancia compartida, por lo que el campo ausente de B conservó el valor de A. Los dos cuerpos son literalmente el mismo objeto.
  • Corregido: el comment del inquilino B es null — cada exchange recibe su propia copia limpia.
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected: B sees A's secret; >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -jar target/cve-2026-85245-thrift-cross-exchange-disclosure-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: B's comment is null; >>> Not exploited

Resumen de la vulnerabilidad

PropiedadValor
Componentecamel-thrift (ThriftDataFormat.unmarshal)
CWECWE-488 (Exposición de un elemento de datos a la sesión equivocada)
GravedadMEDIA
Vector de ataqueDos mensajes del mismo tipo Thrift a través de una ruta; un mensaje posterior que omite un campo hereda el valor del anterior
ImpactoDivulgación de datos entre intercambios / entre inquilinos; los intercambios concurrentes pueden observar el estado parcialmente escrito de los demás
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-24442
CréditoClaude Security Scan Tool

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

Los tipos Thrift generados (Work, Operation) son los fixtures de prueba públicos de las propias pruebas de camel-thrift de Apache Camel.

La corrección

ThriftDataFormat.unmarshal ahora deserializa en una copia por intercambio: TBase instance = defaultInstance.deepCopy(); instance.clear(); — luego deserializa los bytes en instance y lo devuelve. Cada intercambio obtiene su propio objeto limpiado, de modo que ningún campo se transfiere entre mensajes y dos intercambios no comparten un cuerpo.

Mitigación si no puede actualizar

Copie el cuerpo deserializado en una nueva instancia inmediatamente después de que se ejecute el formato de datos, y no retenga referencias al objeto devuelto.

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. El "secreto" es una cadena marcadora inerte e inventada. No utilice este material contra sistemas que no sean de su propiedad o que no opere.

Descargar herramienta