JWT — none algorithm + key confusion
JWT con alg: “none” es un token sin firma.
Categoría: Web · Vectores avanzados 🎯 Trinchera — JWT conalg: "none" es un token sin firma. Si
el backend acepta el header sin validar — token válido sin clave.
Key confusion: el backend usa la public key como HMAC secret;
firmas el token con la public key (a veces accesible vía /jwks.json)
y autentica.
🔗 Kill chain — Detección: alg: none o discrepancias entre
firma y verify. Encontrar kid injectable → SQLi/path traversal en
selección de clave.
📡 Huella defensiva — JWTs sin firma en logs, JWTs con alg
inesperado, errores de verify silenciados.
⚠️ Falso amigo — Algunas libs viejas confunden HS256 con RS256
si el caller pasa la public key directamente a verify(token, pub).
🛡️ Remediación — Whitelist explícita de algoritmos
(verify(token, key, {algorithms: ['RS256']})), nunca confiar en
alg del header, rotación periódica de claves.
← Volver al glosario completo Última actualización: 2026-06-11