PyJWT 2.4.0 a 2.12.1: Vulnerabilidade DoS em tokens JWS destacados com b64=false
PyJWT versões 2.4.0 a 2.12.1 possuem uma vulnerabilidade de negação de serviço não autenticada ao verificar tokens JWS destacados com a opção unencoded-payload
O que mudou
PyJWT versões 2.4.0 a 2.12.1 possuem uma vulnerabilidade de negação de serviço não autenticada ao verificar tokens JWS destacados com a opção unencoded-payload (b64=false). A biblioteca decodifica o segmento Base64URL do payload antes de verificar se ele está destacado, permitindo que um atacante forneça um payload arbitrariamente grande que força trabalho de CPU e alocação de memória mesmo que a assinatura seja inválida.
Quem isso afeta
Qualquer aplicação que use PyJWT para verificar tokens JWS destacados (b64=false) sem limites de tamanho de corpo upstream. Implantações com limites típicos de tamanho de corpo (≤2 MB) estão menos expostas.
O que fazer hoje
Aplique uma solução alternativa: imponha um comprimento máximo estrito de token no limite HTTP, limite a taxa de endpoints de verificação ou rejeite tokens com b64=false se JWS destacado não for necessário. Atualize para uma versão corrigida quando disponível.