Jwx · Jwx · CVE-2024-21664
**Nome do software vulnerável e versões afetadas**
Versões do jwx anteriores à 1.2.28
Versões do jwx anteriores à 2.0.19
**Descrição**
O problema ocorre ao chamar `jws.Parse` com uma carga serializada em JSON na qual o campo `signature` está presente, enquanto `protected` está ausente, levando a uma desreferência de ponteiro nulo. Isso pode ser usado para causar falha ou realizar um ataque de negação de serviço (DOS) em um sistema que esteja realizando verificação JWS. A vulnerabilidade afeta outras funções que chamam `Parse` internamente, como `jws.Verify`. Essas funções devem falhar de maneira controlada em caso de entrada inválida e não requerem validação prévia. O problema ocorre porque o processamento realizado em `jws/message.go:UnmarshalJSON()` pressupõe que, se um campo `signature` estiver presente, um campo `protected` também estará presente. Se esse não for o caso, a chamada subsequente para `getB64Value(sig.protected)` irá desreferenciar `sig.protected`, que é `nil`.
**Recomendações**
Para versões anteriores à 1.2.28, atualize para a versão 1.2.28 ou posterior.
Para versões anteriores à 2.0.19, atualize para a versão 2.0.19 ou posterior.
Como solução temporária, considere validar a entrada para garantir que o campo `protected` esteja presente quando o campo `signature` estiver presente, antes de chamar `jws.Parse`.