CVE-2026-105297

Estado: Pendiente de análisisAlta (7.5)—
Gravedad7.5Alta · CVSS 3.1
Probabilidad de explotación0.34 %mayor que el 26 % 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.8.1, el servidor HTTP/2 de Pingora utilizaba los límites predeterminados del crate h2, salvo que la aplicación estableciera su propio límite de 16 MiB para el tamaño de la lista de cabeceras descodificadas y no impusiera límite alguno al número de flujos concurrentes. Un cliente remoto y sin autenticar puede enviar referencias HPACK de 1 byte a una cabecera casi vacía, lo que obliga al servidor a asignar cientos de miles de campos de cabecera por flujo, a través de un número ilimitado de flujos en una misma conexión, y a utilizar el control de flujo de HTTP/2 para mantener abiertos esos flujos. Esto puede agotar la memoria y degradar o terminar el proceso de Pingora.

Leer descripción completaMostrar menos

Impacto

Denegación de servicio (DoS) remota y sin autenticar contra cualquier servicio de Pingora que termine HTTP/2 (h2 o h2c) sin establecer explícitamente max_header_list_size y max_concurrent_streams. El informante demostró que una única conexión podía provocar que un proceso de Pingora con un límite de memoria de 2 GiB fuera terminado por falta de memoria (OOM-killed).

Tenga en cuenta que los clientes de la CDN de Cloudflare no se vieron afectados, ya que los servicios internos de Pingora de Cloudflare no tienen clientes HTTP/2.

Mitigación:

Actualice a pingora 0.8.1 o posterior (corrección: https://github.com/cloudflare/pingora/commit/d193c8d49b8b7c1c1ede93183759caa4f6906bbd ). Cuando no se proporcionan H2Options, Pingora ahora anuncia y aplica un límite de 64 KiB para la lista de cabeceras descodificadas y un máximo de 100 flujos concurrentes por conexión.

Las aplicaciones que proporcionen sus propias H2Options no quedan cubiertas por estos valores predeterminados y deben establecer max_header_list_size y max_concurrent_streams explícitamente (esto también funciona en versiones anteriores a la 0.8.1), o, en la 0.8.1 y posteriores, partir de pingora_core::protocols::http::v2::server::default_h2_options(). H2Options::default() no incluye estos límites.

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
7.5
Versión
3.1
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Probabilidad de explotación (EPSS)

Probabilidad de explotación en los próximos 30 días
0.34 %
Percentil entre todas las CVEs puntuadas
26
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 explota HTTP/2 sin autenticar; el texto indica agotamiento de memoria y caída o degradación del proceso Pingora (DoS remoto).

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 1 referencias

JSON original (NVD)

Mostrar
{
  "id": "CVE-2026-105297",
  "cveTags": [],
  "metrics": {
    "cvssMetricV31": [
      {
        "type": "Secondary",
        "source": "cna@cloudflare.com",
        "cvssData": {
          "scope": "UNCHANGED",
          "version": "3.1",
          "baseScore": 7.5,
          "attackVector": "NETWORK",
          "baseSeverity": "HIGH",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
          "integrityImpact": "NONE",
          "userInteraction": "NONE",
          "attackComplexity": "LOW",
          "availabilityImpact": "HIGH",
          "privilegesRequired": "NONE",
          "confidentialityImpact": "NONE"
        },
        "impactScore": 3.6,
        "exploitabilityScore": 3.9
      }
    ]
  },
  "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.8.1",
              "versionType": "semver"
            }
          ],
          "defaultStatus": "unaffected"
        }
      ]
    }
  ],
  "published": "2026-10-20T01:17:09.613",
  "references": [
    {
      "url": "https://github.com/cloudflare/pingora",
      "source": "cna@cloudflare.com"
    }
  ],
  "vulnStatus": "Awaiting Analysis",
  "weaknesses": [
    {
      "type": "Secondary",
      "source": "cna@cloudflare.com",
      "description": [
        {
          "lang": "en",
          "value": "CWE-770"
        }
      ]
    }
  ],
  "descriptions": [
    {
      "lang": "en",
      "value": "Summary\n\n\n\nBefore version 0.8.1, Pingora's HTTP/2 server used the h2 crate's default limits unless the application set its own 16 MiB decoded header-list size and no limit on concurrent streams. A remote, unauthenticated client can send 1-byte HPACK references to a near-empty header, making the server allocate hundreds of thousands of header fields per stream across an unlimited number of streams on one connection, and use HTTP/2 flow control to keep those streams open. This can exhaust memory and degrade or terminate the Pingora process.\n\n\n\n\nImpact\n\n\n\nRemote, unauthenticated denial of service against any Pingora service that terminates HTTP/2 (h2 or h2c) without explicitly setting max_header_list_size and max_concurrent_streams. The reporter showed that a single connection could get a Pingora process with a 2 GiB memory limit OOM-killed.\n\n\n\n\nNote that Cloudflare CDN customers were unaffected, as internal Pingora services at Cloudflare do not have HTTP/2 clients.\n\n\n\nMitigation:\n\n  *  \n\nUpgrade to pingora 0.8.1 or later (fix:  https://github.com/cloudflare/pingora/commit/d193c8d49b8b7c1c1ede93183759caa4f6906bbd ). When no H2Options are supplied, Pingora now advertises and enforces a 64 KiB decoded header-list limit and at most 100 concurrent streams per connection.\n\n\n  *  \n\nApplications that supply their own H2Options are not covered by these defaults and must set max_header_list_size and max_concurrent_streams explicitly (this also works on versions before 0.8.1), or, on 0.8.1 and later, start from pingora_core::protocols::http::v2::server::default_h2_options(). H2Options::default() does not include these limits."
    }
  ],
  "lastModified": "2026-10-20T15:03:59.857",
  "sourceIdentifier": "cna@cloudflare.com"
}