CVE-2026-84176

Estado: Pendiente de análisisMedia (6.5)—PoC
Gravedad6.5Media · CVSS 3.1
Probabilidad de explotación0.44 %mayor que el 37 % de las CVE
Explotación activaNono figura en el catálogo de CISA
Exploit públicoDisponiblePrueba de concepto en GitHub (no verificada)

Política de dominios cruzados permisiva con dominios no confiables en el componente Apache Camel Platform HTTP Vertx.

El problema afecta a Apache Camel: desde la 4.0.0 hasta antes de la 4.18.5, y desde la 4.19.0 hasta antes de la 4.22.1.

El método createCorsHandler() establecía Access-Control-Allow-Credentials: true fuera de la comprobación del origen, de modo que la cabecera se enviaba en todas las respuestas a una petición que incluyera una cabecera Origin, incluidas las respuestas a orígenes que el manejador acababa de decidir no permitir.

Leer descripción completaMostrar menos

Cuando camel.server.cors.origins no está definido, el manejador considera permitido cualquier origen y devuelve el propio Origin del solicitante como Access-Control-Allow-Origin. Juntas, estas dos cosas producen la configuración con credenciales y cualquier origen que la especificación de fetch se niega a expresar mediante un comodín literal; precisamente por eso reflejar el origen es la forma habitual de sortear esa regla. Por tanto, una página de cualquier origen podía realizar peticiones de origen cruzado con credenciales al endpoint de Camel y leer las respuestas.

Actualice a Apache Camel 4.23.0, que corrige el problema. Los usuarios de la rama LTS 4.18.x deben actualizar a la 4.18.5. Los usuarios de la rama LTS 4.22.x deben actualizar a la 4.22.1. Access-Control-Allow-Credentials solo se envía ahora cuando el origen de la petición coincide con un origen que el operador haya configurado realmente. Sin lista de orígenes, el origen sigue reflejándose como antes, pero no se conceden credenciales, y Vary: Origin se establece ahora siempre que se refleje el origen, para que una caché compartida no pueda servir la respuesta de un origen a otro. En despliegues que no puedan actualizarse de inmediato, establezca camel.server.cors.origins con la lista explícita de orígenes que necesitan acceso en lugar de dejarlo sin definir.

Traducción automática del texto original de NVD (en inglés).

CVSS

Puntuación base
6.5
Versión
3.1
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N

Probabilidad de explotación (EPSS)

Probabilidad de explotación en los próximos 30 días
0.44 %
Percentil entre todas las CVEs puntuadas
37
Fecha de la puntuación
20/10/2026

EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).

Exploits públicos

Hay código de explotación o plantillas de detección públicos. No es lo mismo que explotación activa confirmada (KEV), pero aumenta el riesgo: parchee con prioridad.

⚠️ Las pruebas de concepto de GitHub no están verificadas: algunas son falsas o contienen malware. No las ejecute nunca fuera de un laboratorio aislado.

Técnicas ATT&CK

Cómo se explota esta vulnerabilidad y qué consigue el atacante, en el lenguaje de MITRE ATT&CK.

El vector UI:R y el texto indican que una página de cualquier origen lee respuestas del endpoint Camel con credenciales, lo que sustenta lectura de datos locales.

Inferido por nuestro agente de análisis a partir de la descripción oficial, el vector CVSS y la CWE, y comprobado por un supervisor. Puede contener errores.

Mitigaciones ATT&CK que cubren estas técnicas

Tecnologías afectadas (1)

⚠ Inferidas por IA a partir de la descripción — NVD aún no ha analizado esta CVE; no son CPE verificados.

CWE

Referencias

Mostrar las 5 referencias

JSON original (NVD)

Mostrar
{
  "id": "CVE-2026-84176",
  "cveTags": [],
  "metrics": {
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "id": "CVE-2026-84176",
          "role": "CISA Coordinator",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "version": "2.0.3",
          "timestamp": "2026-10-19T18:42:08.530669Z"
        }
      }
    ],
    "cvssMetricV31": [
      {
        "type": "Secondary",
        "source": "security@apache.org",
        "cvssData": {
          "scope": "UNCHANGED",
          "version": "3.1",
          "baseScore": 6.5,
          "attackVector": "NETWORK",
          "baseSeverity": "MEDIUM",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N",
          "integrityImpact": "NONE",
          "userInteraction": "REQUIRED",
          "attackComplexity": "LOW",
          "availabilityImpact": "NONE",
          "privilegesRequired": "NONE",
          "confidentialityImpact": "HIGH"
        },
        "impactScore": 3.6,
        "exploitabilityScore": 2.8
      }
    ]
  },
  "affected": [
    {
      "source": "security@apache.org",
      "affectedData": [
        {
          "vendor": "Apache Software Foundation",
          "product": "Apache Camel",
          "versions": [
            {
              "status": "affected",
              "version": "4.0.0",
              "lessThan": "4.18.5",
              "versionType": "maven"
            },
            {
              "status": "affected",
              "version": "4.19.0",
              "lessThan": "4.22.1",
              "versionType": "maven"
            },
            {
              "status": "unaffected",
              "version": "4.18.5",
              "versionType": "maven"
            },
            {
              "status": "unaffected",
              "version": "4.22.1",
              "versionType": "maven"
            },
            {
              "status": "unaffected",
              "version": "4.23.0",
              "versionType": "maven"
            }
          ],
          "packageURL": "pkg:maven/org.apache.camel/camel-platform-http-vertx",
          "packageName": "org.apache.camel:camel-platform-http-vertx",
          "collectionURL": "https://repo.maven.apache.org/maven2",
          "defaultStatus": "unaffected"
        }
      ]
    }
  ],
  "published": "2026-10-19T11:17:21.750",
  "references": [
    {
      "url": "https://camel.apache.org/security/CVE-2026-84176.html",
      "source": "security@apache.org"
    },
    {
      "url": "https://github.com/apache/camel/pull/25820",
      "source": "security@apache.org"
    },
    {
      "url": "https://github.com/apache/camel/pull/25937",
      "source": "security@apache.org"
    },
    {
      "url": "https://github.com/apache/camel/pull/25938",
      "source": "security@apache.org"
    },
    {
      "url": "https://issues.apache.org/jira/browse/CAMEL-24436",
      "source": "security@apache.org"
    }
  ],
  "vulnStatus": "Awaiting Analysis",
  "weaknesses": [
    {
      "type": "Secondary",
      "source": "security@apache.org",
      "description": [
        {
          "lang": "en",
          "value": "CWE-942"
        }
      ]
    }
  ],
  "descriptions": [
    {
      "lang": "en",
      "value": "Permissive Cross-domain Policy with Untrusted Domains vulnerability in Apache Camel Platform HTTP Vertx component.\n\nThis issue affects Apache Camel: from 4.0.0 before 4.18.5, from 4.19.0 before 4.22.1.\n\n\n\n\ncreateCorsHandler() set Access-Control-Allow-Credentials: true outside the origin check, so the header went out on every response to a request carrying an Origin header, including responses to origins the handler had just decided not to allow. When camel.server.cors.origins is unset, the handler treats every origin as allowed and echoes the caller's own Origin back as Access-Control-Allow-Origin. Together those produce the credentialed any-origin configuration that the fetch specification refuses to express as a literal wildcard, which is precisely why reflecting the origin is the usual way around that rule. A page on any origin could therefore make credentialed cross-origin requests to the Camel endpoint and read the responses.\n\nUpgrade to Apache Camel 4.23.0, which fixes the issue. Users on the 4.18.x LTS releases stream should upgrade to 4.18.5. Users on the 4.22.x LTS releases stream should upgrade to 4.22.1. Access-Control-Allow-Credentials is now sent only when the request origin matched an origin the operator actually configured. With no origin list the origin is still reflected, as before, but credentials are not granted, and Vary: Origin is now set whenever the origin is reflected so that a shared cache cannot serve one origin's response to another. For deployments that cannot upgrade immediately, set camel.server.cors.origins to the explicit list of origins that need access rather than leaving it unset."
    }
  ],
  "lastModified": "2026-10-19T20:45:51.597",
  "sourceIdentifier": "security@apache.org"
}