CVE-2016-10555
Como "algorithm" no se aplica en jwt.decode() en jwt-simple en versiones 0.3.0 y anteriores, un usuario malicioso podría elegir qué algoritmo se envía al servidor. Si el servidor espera RSA pero recibe HMAC-SHA con la clave pública RSA, el servidor pensará que la clave pública es, en realidad, una clave privada HMAC. Esto podría emplearse para falsificar cualquier dato que quiera un atacante.
CVSS
- Versión: 3.0
- Vector: CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
- Puntuación base: 6.5
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días: 4.78%
- Percentil entre todas las CVEs puntuadas: 92
- Fecha de la puntuación: 10/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.
- Prueba de concepto en GitHub (no verificada) · Lista de pruebas de concepto en GitHub
⚠️ 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.
Tecnologías afectadas (1)
CWE
- CWE-20
- CWE-310
Referencias
- https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/
- https://github.com/hokaccha/node-jwt-simple/pull/14
- https://github.com/hokaccha/node-jwt-simple/pull/16
- https://nodesecurity.io/advisories/87
- https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/
- https://github.com/hokaccha/node-jwt-simple/pull/14
- https://github.com/hokaccha/node-jwt-simple/pull/16
- https://nodesecurity.io/advisories/87
JSON original (NVD)
Mostrar
{
"id": "CVE-2016-10555",
"cveTags": [],
"metrics": {
"cvssMetricV2": [
{
"type": "Primary",
"source": "nvd@nist.gov",
"cvssData": {
"version": "2.0",
"baseScore": 4,
"accessVector": "NETWORK",
"vectorString": "AV:N/AC:L/Au:S/C:N/I:P/A:N",
"authentication": "SINGLE",
"integrityImpact": "PARTIAL",
"accessComplexity": "LOW",
"availabilityImpact": "NONE",
"confidentialityImpact": "NONE"
},
"acInsufInfo": false,
"impactScore": 2.9,
"baseSeverity": "MEDIUM",
"obtainAllPrivilege": false,
"exploitabilityScore": 8,
"obtainUserPrivilege": false,
"obtainOtherPrivilege": false,
"userInteractionRequired": false
}
],
"cvssMetricV30": [
{
"type": "Primary",
"source": "nvd@nist.gov",
"cvssData": {
"scope": "UNCHANGED",
"version": "3.0",
"baseScore": 6.5,
"attackVector": "NETWORK",
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N",
"integrityImpact": "HIGH",
"userInteraction": "NONE",
"attackComplexity": "LOW",
"availabilityImpact": "NONE",
"privilegesRequired": "LOW",
"confidentialityImpact": "NONE"
},
"impactScore": 3.6,
"exploitabilityScore": 2.8
}
]
},
"affected": [
{
"source": "support@hackerone.com",
"affectedData": [
{
"vendor": "HackerOne",
"product": "jwt-simple node module",
"versions": [
{
"status": "affected",
"version": "<=0.3.0"
}
]
}
]
}
],
"published": "2018-05-31T20:29:02.067",
"references": [
{
"url": "https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/",
"tags": [
"Broken Link",
"Third Party Advisory"
],
"source": "support@hackerone.com"
},
{
"url": "https://github.com/hokaccha/node-jwt-simple/pull/14",
"tags": [
"Issue Tracking",
"Third Party Advisory"
],
"source": "support@hackerone.com"
},
{
"url": "https://github.com/hokaccha/node-jwt-simple/pull/16",
"tags": [
"Issue Tracking",
"Third Party Advisory"
],
"source": "support@hackerone.com"
},
{
"url": "https://nodesecurity.io/advisories/87",
"tags": [
"Third Party Advisory"
],
"source": "support@hackerone.com"
},
{
"url": "https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/",
"tags": [
"Broken Link",
"Third Party Advisory"
],
"source": "af854a3a-2127-422b-91ae-364da2661108"
},
{
"url": "https://github.com/hokaccha/node-jwt-simple/pull/14",
"tags": [
"Issue Tracking",
"Third Party Advisory"
],
"source": "af854a3a-2127-422b-91ae-364da2661108"
},
{
"url": "https://github.com/hokaccha/node-jwt-simple/pull/16",
"tags": [
"Issue Tracking",
"Third Party Advisory"
],
"source": "af854a3a-2127-422b-91ae-364da2661108"
},
{
"url": "https://nodesecurity.io/advisories/87",
"tags": [
"Third Party Advisory"
],
"source": "af854a3a-2127-422b-91ae-364da2661108"
}
],
"vulnStatus": "Modified",
"weaknesses": [
{
"type": "Secondary",
"source": "support@hackerone.com",
"description": [
{
"lang": "en",
"value": "CWE-20"
}
]
},
{
"type": "Primary",
"source": "nvd@nist.gov",
"description": [
{
"lang": "en",
"value": "CWE-310"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "Since \"algorithm\" isn't enforced in jwt.decode()in jwt-simple 0.3.0 and earlier, a malicious user could choose what algorithm is sent sent to the server. If the server is expecting RSA but is sent HMAC-SHA with RSA's public key, the server will think the public key is actually an HMAC private key. This could be used to forge any data an attacker wants."
},
{
"lang": "es",
"value": "Como \"algorithm\" no se aplica en jwt.decode() en jwt-simple en versiones 0.3.0 y anteriores, un usuario malicioso podría elegir qué algoritmo se envía al servidor. Si el servidor espera RSA pero recibe HMAC-SHA con la clave pública RSA, el servidor pensará que la clave pública es, en realidad, una clave privada HMAC. Esto podría emplearse para falsificar cualquier dato que quiera un atacante."
}
],
"lastModified": "2026-06-17T00:39:55.730",
"configurations": [
{
"nodes": [
{
"negate": false,
"cpeMatch": [
{
"criteria": "cpe:2.3:a:jwt-simple_project:jwt-simple:*:*:*:*:*:node.js:*:*",
"vulnerable": true,
"matchCriteriaId": "FB7173F7-05CB-4AF1-866F-BC98BB7996DE",
"versionEndIncluding": "0.3.0"
}
],
"operator": "OR"
}
]
}
],
"sourceIdentifier": "support@hackerone.com"
}