CVE-2026-107275
@fastify/jwt es un plugin de JSON Web Token para el framework web Fastify. En versiones anteriores a 10.2.3, un intervalo de tiempo pasado a expiresIn, notBefore o maxAge que el analizador del plugin no puede leer, como un intervalo compuesto, una unidad de mes, una duración ISO 8601, una coma decimal o un valor con espacios en blanco alrededor, se descarta silenciosamente en lugar de rechazarse.
Leer descripción completaMostrar menos
En la ruta de firma, esto produce un token sin reclamación de expiración que nunca caduca, y en la ruta de verificación deja de aplicarse un maxAge configurado, de modo que se acepta un token que debería rechazarse por su antigüedad. El problema está corregido en @fastify/jwt 10.2.3, y los usuarios deberían actualizar a 10.2.3 o posterior. Como solución alternativa, pase estas opciones como un número de segundos, o verifique que cualquier cadena de intervalo de tiempo se analiza como un valor finito antes de confiar en ella.
Traducción automática del texto original de NVD (en inglés).
CVSS
- Versión: 3.1
- Vector: CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N
- Puntuación base: 6.8
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días: 0.31%
- Percentil entre todas las CVEs puntuadas: 23
- Fecha de la puntuación: 17/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.
- Explotación
T1210Exploitation of Remote Serviceslateral movement75 % - Impacto principal
T1078Valid Accountsstealth · persistence · privilege escalation · initial access80 % - Impacto secundario
T1556Modify Authentication Processdefense impairment · persistence · credential access70 %
Acceso remoto con privilegios (PR:L) a servicio web Fastify. Impacto: tokens JWT sin expiración permiten autenticación persistente y secuestro de identidad.
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
- CWE-390, CWE-613, CWE-754
Referencias
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-107275",
"cveTags": [],
"metrics": {
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-107275",
"role": "CISA Coordinator",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "total"
}
],
"version": "2.0.3",
"timestamp": "2026-10-08T14:21:14.347462Z"
}
}
],
"cvssMetricV31": [
{
"type": "Secondary",
"source": "ce714d77-add3-4f53-aff5-83d477b104bb",
"cvssData": {
"scope": "UNCHANGED",
"version": "3.1",
"baseScore": 6.8,
"attackVector": "NETWORK",
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N",
"integrityImpact": "HIGH",
"userInteraction": "NONE",
"attackComplexity": "HIGH",
"availabilityImpact": "NONE",
"privilegesRequired": "LOW",
"confidentialityImpact": "HIGH"
},
"impactScore": 5.2,
"exploitabilityScore": 1.6
}
]
},
"affected": [
{
"source": "ce714d77-add3-4f53-aff5-83d477b104bb",
"affectedData": [
{
"vendor": "@fastify/jwt",
"product": "@fastify/jwt",
"versions": [
{
"status": "affected",
"version": "0",
"lessThan": "10.2.3",
"versionType": "semver"
},
{
"status": "unaffected",
"version": "10.2.3",
"versionType": "semver"
}
],
"packageURL": "pkg:npm/@fastify/jwt",
"defaultStatus": "unaffected"
}
]
}
],
"published": "2026-10-08T12:17:14.553",
"references": [
{
"url": "https://cna.openjsf.org/security-advisories.html",
"source": "ce714d77-add3-4f53-aff5-83d477b104bb"
},
{
"url": "https://github.com/fastify/fastify-jwt/security/advisories/GHSA-9x4w-r9p5-5h7m",
"source": "ce714d77-add3-4f53-aff5-83d477b104bb"
}
],
"vulnStatus": "Awaiting Analysis",
"weaknesses": [
{
"type": "Secondary",
"source": "ce714d77-add3-4f53-aff5-83d477b104bb",
"description": [
{
"lang": "en",
"value": "CWE-390"
},
{
"lang": "en",
"value": "CWE-613"
},
{
"lang": "en",
"value": "CWE-754"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "@fastify/jwt is a JSON Web Token plugin for the Fastify web framework. In versions before 10.2.3, a time span passed to expiresIn, notBefore, or maxAge that the plugin's parser cannot read, such as a compound span, a month unit, an ISO 8601 duration, a decimal comma, or a value with surrounding whitespace, is silently dropped instead of refused. On the signing path this produces a token with no expiration claim that never expires, and on the verification path a configured maxAge stops being enforced, so a token that should be rejected for age is accepted. The issue is fixed in @fastify/jwt 10.2.3, and users should upgrade to 10.2.3 or later. As a workaround, pass these options as a number of seconds, or verify that any time-span string parses to a finite value before relying on it."
}
],
"lastModified": "2026-10-08T20:49:23.240",
"sourceIdentifier": "ce714d77-add3-4f53-aff5-83d477b104bb"
}