CVE-2026-105299

Estado: Pendiente de análisisAlta (8.7)—
Gravedad8.7Alta · CVSS 3.1
Probabilidad de explotación0.34 %mayor que el 25 % de las CVE
Explotación activaNono figura en el catálogo de CISA
Exploit públicoNo conocidosin código público localizado

Resumen

Antes de la versión 0.9.0, la ruta upstream HTTP/1 en pingora-proxy pasaba la solicitud downstream por upstream_request_filter y la escribía en el upstream sin eliminar la cabecera Connection del cliente, otras cabeceras hop-by-hop ni las cabeceras que nombraba Connection, aunque la RFC 9110, sección 7.6.1, exige que los intermediarios las eliminen. La ruta upstream HTTP/2 ya eliminaba Connection y las cabeceras específicas de HTTP/1. Por tanto, un cliente podía nombrar una cabecera que la aplicación añade en upstream_request_filter (por ejemplo, Connection: keep-alive, X-Forwarded-For). Un intermediario HTTP/1 downstream que respete Connection eliminaría entonces la cabecera añadida por Pingora antes de que llegara al origen.

Leer descripción completaMostrar menos

Impacto

Afecta específicamente a los despliegues encadenados en los que un intermediario HTTP/1 situado entre Pingora y el origen procesa las menciones de Connection (por ejemplo, net/http/httputil.ReverseProxy de Go) y el origen confía en las cabeceras añadidas por ese intermediario (por ejemplo, X-Forwarded-For para la autorización basada en IP). Un atacante remoto y sin autenticar puede lograr que se eliminen esas cabeceras, lo que podría permitirle eludir la autorización. El informante demostró el acceso a un endpoint restringido por IP usando X-Forwarded-For para la validación de IP en el origen. Se trata de la misma clase de problema que CVE-2022-31813 en Apache HTTP Server.

Tenga en cuenta que los clientes de la CDN de Cloudflare no se vieron afectados, ya que no existe un despliegue encadenado como el descrito con servicios internos de Pingora, y las cabeceras Connection se sanean antes de llegar a las pasarelas de Pingora.

Mitigación:

Actualice a pingora 0.9.0 o posterior. De forma predeterminada, Pingora ahora elimina las cabeceras hop-by-hop y las nombradas en Connection de las solicitudes upstream, y rechaza las solicitudes cuya cabecera Connection nombre Host, X-Forwarded-For, X-Forwarded-Host, X-Forwarded-Proto o un pseudo-encabezado. Esto se controla mediante PeerOptions::http_upstream_request_policy (HttpUpstreamRequestPolicy). Commits de corrección: https://github.com/cloudflare/pingora/commit/28c18e6b6b04dd0bd937234e5950049e6d74cded , https://github.com/cloudflare/pingora/commit/ca23f1668eca8e78be7ba62ef0edbd458b40eeee

No utilice HttpUpstreamRequestPolicy::preserve() si el origen depende de cabeceras añadidas por Pingora; restaura el comportamiento de paso directo anterior.

Si no puede actualizar: en upstream_request_filter, elimine la cabecera Connection y todas las cabeceras que nombre antes de añadir cabeceras de confianza.

Detalles técnicos trazas, registros y código del informe original
  *

  *

  *

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

CVSS

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

Probabilidad de explotación (EPSS)

Probabilidad de explotación en los próximos 30 días
0.34 %
Percentil entre todas las CVEs puntuadas
25
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).

Técnicas ATT&CK

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

Vector AV:N/PR:N/UI:N: el atacante remoto sin autenticación elimina cabeceras añadidas por Pingora (p. ej. X-Forwarded-For) y evade la autorización por IP del origen.

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.

Referencias

Mostrar las 1 referencias

JSON original (NVD)

Mostrar
{
  "id": "CVE-2026-105299",
  "cveTags": [],
  "metrics": {
    "cvssMetricV31": [
      {
        "type": "Secondary",
        "source": "cna@cloudflare.com",
        "cvssData": {
          "scope": "CHANGED",
          "version": "3.1",
          "baseScore": 8.7,
          "attackVector": "NETWORK",
          "baseSeverity": "HIGH",
          "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N",
          "integrityImpact": "HIGH",
          "userInteraction": "NONE",
          "attackComplexity": "HIGH",
          "availabilityImpact": "NONE",
          "privilegesRequired": "NONE",
          "confidentialityImpact": "HIGH"
        },
        "impactScore": 5.8,
        "exploitabilityScore": 2.2
      }
    ]
  },
  "affected": [
    {
      "source": "cna@cloudflare.com",
      "affectedData": [
        {
          "repo": "https://github.com/cloudflare/pingora",
          "vendor": "Cloudflare",
          "product": "https://github.com/cloudflare/pingora",
          "versions": [
            {
              "status": "affected",
              "version": "0.1.0",
              "lessThan": "0.9.0",
              "versionType": "semver"
            }
          ],
          "defaultStatus": "unaffected"
        }
      ]
    }
  ],
  "published": "2026-10-20T02:17:08.703",
  "references": [
    {
      "url": "https://github.com/cloudflare/pingora",
      "source": "cna@cloudflare.com"
    }
  ],
  "vulnStatus": "Awaiting Analysis",
  "descriptions": [
    {
      "lang": "en",
      "value": "Summary\n\n\n\nBefore version 0.9.0, the HTTP/1 upstream path in pingora-proxy passed the downstream request through upstream_request_filter and wrote it to the upstream without removing the client's Connection header, other hop-by-hop headers, or the headers Connection nominated, although RFC 9110 Section 7.6.1 requires intermediaries to remove them. The HTTP/2 upstream path already removed Connection and related HTTP/1-specific headers. A client could therefore nominate a header that the application adds in upstream_request_filter (for example, Connection: keep-alive, X-Forwarded-For). A downstream HTTP/1 intermediary that honors Connection would then strip the Pingora-added header before it reached the origin.\n\n\n\n\nImpact\n\n\n\nSpecifically affects chained deployments where an HTTP/1 intermediary between Pingora and the origin processes Connection nominations (for example, Go's net/http/httputil.ReverseProxy) and the origin trusts headers added by that intermediary (for example, X-Forwarded-For for IP-based authorization). A remote, unauthenticated attacker can have those headers removed, potentially bypassing authorization. The reporter demonstrated access to an IP-restricted endpoint using X-Forwarded-For for IP validation on the origin. This is the same class of issue as CVE-2022-31813 in Apache HTTP Server.\n\n\n\n\nNote that Cloudflare CDN customers were unaffected, as no such chained deployment as described above exists with internal Pingora services, and Connection headers are sanitized before arriving at Pingora gateways.\n\n\n\nMitigation:\n\n  *  \n\nUpgrade to pingora 0.9.0 or later. By default, Pingora now removes hop-by-hop and Connection-nominated headers from upstream requests, and rejects requests whose Connection header nominates Host, X-Forwarded-For, X-Forwarded-Host, X-Forwarded-Proto, or a pseudo-header. This is controlled by PeerOptions::http_upstream_request_policy (HttpUpstreamRequestPolicy). Fix commits:  https://github.com/cloudflare/pingora/commit/28c18e6b6b04dd0bd937234e5950049e6d74cded ,  https://github.com/cloudflare/pingora/commit/ca23f1668eca8e78be7ba62ef0edbd458b40eeee \n\n\n  *  \n\nDo not use HttpUpstreamRequestPolicy::preserve() if the origin relies on headers added by Pingora; it restores the old passthrough behavior.\n\n\n  *  \n\nIf you cannot upgrade: in upstream_request_filter, remove the Connection header and every header it nominates before adding trusted headers."
    }
  ],
  "lastModified": "2026-10-20T15:03:59.857",
  "sourceIdentifier": "cna@cloudflare.com"
}