« Volver al listado

CVE-2026-30827

Estado: AnalizadaAlta (7.5)—

express-rate-limit is a basic rate-limiting middleware for Express. In versions starting from 8.0.0 and prior to versions 8.0.2, 8.1.1, 8.2.2, and 8.3.0, the default keyGenerator in express-rate-limit applies IPv6 subnet masking (/56 by default) to all addresses that net.isIPv6() returns true for. This includes IPv4-mapped IPv6 addresses (::ffff:x.x.x.x), which Node.js returns as request.ip on dual-stack servers. Because the first 80 bits of all IPv4-mapped addresses are zero, a /56 (or any /32 to /80) subnet mask produces the same network key (::/56) for every IPv4 client.

Leer descripción completaMostrar menos

This collapses all IPv4 traffic into a single rate-limit bucket: one client exhausting the limit causes HTTP 429 for all other IPv4 clients. This issue has been patched in versions 8.0.2, 8.1.1, 8.2.2, and 8.3.0.

CVSS

Probabilidad de explotación (EPSS)

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.

AV:N/PR:N/UI:N indica explotación remota sin privilegios (T1190). La vulnerabilidad permite agotamiento de límite de tasa causando negación de servicio HTTP 429 (T1499.004 - HTTP Flood).

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)

CWE

Referencias

JSON original (NVD)

Mostrar
{
  "id": "CVE-2026-30827",
  "cveTags": [],
  "metrics": {
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "id": "CVE-2026-30827",
          "role": "CISA Coordinator",
          "options": [
            {
              "exploitation": "poc"
            },
            {
              "automatable": "yes"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "version": "2.0.3",
          "timestamp": "2026-03-09T20:40:59.712815Z"
        }
      }
    ],
    "cvssMetricV31": [
      {
        "type": "Secondary",
        "source": "security-advisories@github.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": "security-advisories@github.com",
      "affectedData": [
        {
          "vendor": "express-rate-limit",
          "product": "express-rate-limit",
          "versions": [
            {
              "status": "affected",
              "version": ">= 8.0.0, < 8.0.2"
            },
            {
              "status": "affected",
              "version": ">= 8.1.0, < 8.1.1"
            },
            {
              "status": "affected",
              "version": ">= 8.2.0, < 8.2.2"
            }
          ]
        }
      ]
    }
  ],
  "published": "2026-03-07T06:16:10.507",
  "references": [
    {
      "url": "https://github.com/express-rate-limit/express-rate-limit/commit/14e53888cdfd1b9798faf5b634c4206409e27fc4",
      "tags": [
        "Patch"
      ],
      "source": "security-advisories@github.com"
    },
    {
      "url": "https://github.com/express-rate-limit/express-rate-limit/security/advisories/GHSA-46wh-pxpv-q5gq",
      "tags": [
        "Exploit",
        "Patch",
        "Vendor Advisory"
      ],
      "source": "security-advisories@github.com"
    }
  ],
  "vulnStatus": "Analyzed",
  "weaknesses": [
    {
      "type": "Secondary",
      "source": "security-advisories@github.com",
      "description": [
        {
          "lang": "en",
          "value": "CWE-770"
        }
      ]
    }
  ],
  "descriptions": [
    {
      "lang": "en",
      "value": "express-rate-limit is a basic rate-limiting middleware for Express. In versions starting from 8.0.0 and prior to versions 8.0.2, 8.1.1, 8.2.2, and 8.3.0, the default keyGenerator in express-rate-limit applies IPv6 subnet masking (/56 by default) to all addresses that net.isIPv6() returns true for. This includes IPv4-mapped IPv6 addresses (::ffff:x.x.x.x), which Node.js returns as request.ip on dual-stack servers. Because the first 80 bits of all IPv4-mapped addresses are zero, a /56 (or any /32 to /80) subnet mask produces the same network key (::/56) for every IPv4 client. This collapses all IPv4 traffic into a single rate-limit bucket: one client exhausting the limit causes HTTP 429 for all other IPv4 clients. This issue has been patched in versions 8.0.2, 8.1.1, 8.2.2, and 8.3.0."
    },
    {
      "lang": "es",
      "value": "express-rate-limit es un middleware básico de limitación de tasa para Express. En versiones a partir de la 8.0.0 y anteriores a las versiones 8.0.2, 8.1.1, 8.2.2 y 8.3.0, el keyGenerator predeterminado en express-rate-limit aplica enmascaramiento de subred IPv6 (/56 por defecto) a todas las direcciones para las que net.isIPv6() devuelve verdadero. Esto incluye direcciones IPv6 mapeadas a IPv4 (::ffff:x.x.x.x), que Node.js devuelve como request.ip en servidores de doble pila. Debido a que los primeros 80 bits de todas las direcciones mapeadas a IPv4 son cero, una máscara de subred /56 (o cualquier /32 a /80) produce la misma clave de red (::/56) para cada cliente IPv4. Esto colapsa todo el tráfico IPv4 en un único cubo de limitación de tasa: un cliente que agota el límite causa HTTP 429 para todos los demás clientes IPv4. Este problema ha sido parcheado en las versiones 8.0.2, 8.1.1, 8.2.2 y 8.3.0."
    }
  ],
  "lastModified": "2026-06-17T10:32:59.050",
  "configurations": [
    {
      "nodes": [
        {
          "negate": false,
          "cpeMatch": [
            {
              "criteria": "cpe:2.3:a:express-rate-limit_project:express-rate-limit:*:*:*:*:*:*:*:*",
              "vulnerable": true,
              "matchCriteriaId": "AE5ED6AB-D445-4E61-86B1-FBC0659382A0",
              "versionEndExcluding": "8.0.2",
              "versionStartIncluding": "8.0.0"
            },
            {
              "criteria": "cpe:2.3:a:express-rate-limit_project:express-rate-limit:*:*:*:*:*:*:*:*",
              "vulnerable": true,
              "matchCriteriaId": "F501D9EB-DFE4-496D-8471-61DE755B9E05",
              "versionEndExcluding": "8.2.2",
              "versionStartIncluding": "8.2.0"
            },
            {
              "criteria": "cpe:2.3:a:express-rate-limit_project:express-rate-limit:8.1.0:*:*:*:*:*:*:*",
              "vulnerable": true,
              "matchCriteriaId": "C56713D6-533F-424A-B511-5E63014709D8"
            }
          ],
          "operator": "OR"
        }
      ]
    }
  ],
  "sourceIdentifier": "security-advisories@github.com"
}