PyJWT 2.9.0–2.12.1: Bypass de allow-list de algoritmos com chave PyJWK
PyJWT 2.9.0 a 2.12.1 permite bypass da allow-list de algoritmos quando jwt.decode() ou jwt.decode_complete() são chamados com uma chave PyJWK. O algoritmo do he
O que mudou
PyJWT 2.9.0 a 2.12.1 permite bypass da allow-list de algoritmos quando jwt.decode() ou jwt.decode_complete() são chamados com uma chave PyJWK. O algoritmo do header do token é verificado contra a allow-list fornecida pelo chamador, mas a verificação da assinatura usa o algoritmo vinculado ao objeto PyJWK em vez do algoritmo do header.
Quem isso afeta
Aplicações que usam PyJWT com chaves PyJWK, incluindo aquelas que usam PyJWKClient.get_signing_key_from_jwt(), em implantações onde a política de algoritmos atua como fronteira de autenticação/autorização (ex.: asserções OAuth self-service, registro de chaves multi-tenant, modelos de confiança federação/BYO-JWKS).
O que fazer hoje
Atualize para uma versão corrigida se disponível, ou evite usar chaves PyJWK com allow-lists de algoritmos; alternativamente, verifique assinaturas manualmente usando o algoritmo do header.