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

Vulnerabilidades em JWT

Revisado porCybersecurity entrepreneur & security researcher

O que é Vulnerabilidades em JWT?

Vulnerabilidades em JWTClasses de falhas de implementação na validação de JSON Web Tokens que permitem a atacantes forjar tokens, escalar privilégios ou contornar a autenticação.


Os JSON Web Tokens transportam claims de autenticação e autorização, mas a flexibilidade do seu algoritmo de assinatura declarado no header produziu várias classes recorrentes de vulnerabilidades. O bug alg=none, divulgado por Tim McLean em 2015, ocorre quando um verificador confia no header alg do próprio token e o encaminha para um verificador "none" que devolve verdadeiro para uma assinatura vazia — permitindo que um atacante reescreva o payload e descarte a assinatura. Foi corrigido no jsonwebtoken do Node antes da versão 4.2.2 (CVE-2015-9235).

A confusão de chaves (CVE-2016-10555) é mais subtil: se um servidor aceita tanto RS256 como HS256, um atacante assina um token com HMAC usando a chave RSA pública do servidor como segredo partilhado; um verificador ingénuo entrega essa chave pública ao HS256.verify() e a falsificação passa. Problemas relacionados incluem segredos HS256 fracos que podem ser quebrados offline com hashcat, ausência de verificações de exp/nbf e pontos de injeção no header — path traversal ou SQL injection no kid, e campos jwk/jku/x5u controlados pelo atacante que apontam a verificação para uma chave que o atacante possui. Em 2022, a CVE-2022-23529 no jsonwebtoken levantou preocupações de RCE através de um objeto de chave manipulado (mais tarde retratada depois de os pré-requisitos de exploração terem sido contestados).

Defesas: fixar o(s) algoritmo(s) aceite(s) no servidor e nunca ler alg a partir de entrada não confiável, usar chaves assimétricas fortes, validar o kid contra uma allowlist, ignorar URLs de chave embutidos, impor a expiração e tratar cada campo do JWT como entrada hostil.

flowchart TD
  A[Atacante obtém um JWT válido] --> B{Adultera o header}
  B -->|alg none, remove assinatura| C[Verificador salta a verificação?]
  B -->|RS256 para HS256| D[HMAC com chave pública]
  B -->|jku / kid aponta para chave do atacante| E[Verifica contra chave falsa]
  C -->|Sim| F[Token forjado aceite]
  D -->|Sim| F
  E -->|Sim| F
  F --> G[Escalada de privilégios / bypass de auth]
  C -->|alg fixado| H[Rejeitado]
  D -->|alg fixado| H
  E -->|allowlist de kid| H

Exemplos

  1. 01

    Header {"alg":"none"} aceite por uma biblioteca mal configurada.

  2. 02

    O servidor valida um token RS256 usando a sua chave pública como segredo HMAC HS256.

Perguntas frequentes

O que é Vulnerabilidades em JWT?

Classes de falhas de implementação na validação de JSON Web Tokens que permitem a atacantes forjar tokens, escalar privilégios ou contornar a autenticação. Pertence à categoria Segurança de aplicações da cibersegurança.

O que significa Vulnerabilidades em JWT?

Classes de falhas de implementação na validação de JSON Web Tokens que permitem a atacantes forjar tokens, escalar privilégios ou contornar a autenticação.

Como se defender contra Vulnerabilidades em JWT?

As defesas contra Vulnerabilidades em JWT costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.

Termos relacionados