Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 646

Vulnerabilidades en JWT

Revisado porCybersecurity entrepreneur & security researcher

¿Qué es Vulnerabilidades en JWT?

Vulnerabilidades en JWTClases de fallos de implementación en la validación de JSON Web Tokens que permiten a los atacantes falsificar tokens, escalar privilegios o evadir la autenticación.


Los JSON Web Tokens transportan claims de autenticación y autorización, pero la flexibilidad de su algoritmo de firma declarado en la cabecera ha producido varias clases recurrentes de vulnerabilidades. El bug alg=none, divulgado por Tim McLean en 2015, ocurre cuando el verificador confía en la propia cabecera alg del token y delega en un verificador "none" que devuelve verdadero para una firma vacía, permitiendo al atacante reescribir el payload y eliminar la firma. Se corrigió en la librería jsonwebtoken de Node anterior a la 4.2.2 (CVE-2015-9235).

La confusión de claves (CVE-2016-10555) es más sutil: si un servidor acepta tanto RS256 como HS256, un atacante firma un token con HMAC usando la clave RSA pública del servidor como secreto compartido; un verificador ingenuo introduce esa clave pública en HS256.verify() y la falsificación pasa. Otros problemas relacionados incluyen secretos HS256 débiles que se pueden romper offline con hashcat, ausencia de comprobaciones de exp/nbf y sinks de inyección en la cabecera: path traversal o inyección SQL en kid, y campos jwk/jku/x5u controlados por el atacante que apuntan la verificación hacia una clave que él mismo posee. En 2022, la CVE-2022-23529 en jsonwebtoken planteó preocupaciones de RCE mediante un objeto de clave manipulado (posteriormente retirada tras cuestionarse los requisitos previos del exploit).

Defensas: fijar el algoritmo o algoritmos aceptados en el lado del servidor y nunca leer alg desde entrada no confiable, usar claves asimétricas fuertes, validar kid contra una lista de permitidos, ignorar las URLs de claves embebidas, forzar la caducidad y tratar cada campo del JWT como entrada hostil.

flowchart TD
  A[El atacante obtiene un JWT válido] --> B{Manipular cabecera}
  B -->|alg none, quitar firma| C[¿El verificador omite la comprobación?]
  B -->|RS256 a HS256| D[HMAC con clave pública]
  B -->|jku / kid apunta a clave del atacante| E[Verificar contra clave maliciosa]
  C -->|Sí| F[Token falsificado aceptado]
  D -->|Sí| F
  E -->|Sí| F
  F --> G[Escalada de privilegios / evasión de auth]
  C -->|alg fijado| H[Rechazado]
  D -->|alg fijado| H
  E -->|kid en lista de permitidos| H

Ejemplos

  1. 01

    Cabecera {"alg":"none"} aceptada por una librería mal configurada.

  2. 02

    El servidor valida un token RS256 usando su clave pública como secreto HMAC de HS256.

Preguntas frecuentes

¿Qué es Vulnerabilidades en JWT?

Clases de fallos de implementación en la validación de JSON Web Tokens que permiten a los atacantes falsificar tokens, escalar privilegios o evadir la autenticación. Pertenece a la categoría de Seguridad de aplicaciones en ciberseguridad.

¿Qué significa Vulnerabilidades en JWT?

Clases de fallos de implementación en la validación de JSON Web Tokens que permiten a los atacantes falsificar tokens, escalar privilegios o evadir la autenticación.

¿Cómo defenderse de Vulnerabilidades en JWT?

Las defensas contra Vulnerabilidades en JWT combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.

Términos relacionados