
O Auth0 corrigiu uma vulnerabilidade de execução remota de código na imensamente popular biblioteca de código aberto ‘JsonWebToken’, usada por mais de 22.000 projetos e baixada mais de 36 milhões de vezes por mês no NPM.
A biblioteca é usada em projetos de código aberto criados pela Microsoft, Twilio, Salesforce, Intuit, Box, IBM, Docusign, Slack, SAP e muitos outros.
A vulnerabilidade é rastreada CVE-2022-23529 e afeta as versões JsonWebToken abaixo de 9.0.0, lançadas em 21 de dezembro, pouco antes dos feriados.
O projeto JsonWebToken é uma biblioteca de software livre usada para criar, assinar e verificar tokens da Web JSON.
“JSON Web Token (JWT) é um padrão aberto ( RFC 7519 ) que define uma maneira compacta e independente de transmitir informações com segurança entre as partes como um objeto JSON. Essas informações podem ser verificadas e confiáveis porque são assinadas digitalmente”, explica Site jwt.io de Auth0 .
O projeto é desenvolvido e mantido pela Okta Auth0 e tem mais de 9 milhões de downloads semanais no repositório de pacotes NPM e mais de 22.000 projetos na biblioteca, refletindo sua adoção massiva.
A exploração bem-sucedida do CVE-2022-23529 pode permitir que os invasores ignorem os mecanismos de autenticação, acessem informações confidenciais e roubem ou modifiquem dados.
No entanto, a Unidade 42 adverte que os agentes de ameaças precisariam primeiro comprometer o processo de gerenciamento secreto entre um aplicativo e um servidor JsonWebToken, dificultando a exploração e reduzindo a classificação de gravidade para 7,6/10.
Envenenamento Secreto JWT
A vulnerabilidade CVE-2022-23529 foi descoberta pela Unidade 42 da Palo Alto Networks em 13 de julho de 2022 e foi relatada ao Auth0 imediatamente.
Os pesquisadores descobriram que os agentes de ameaças poderiam obter a execução remota de código em servidores usando JsonWebToken depois de verificarem um token JWS criado com códigos maliciosos.
A falha que permite isso está no método Verify () do JsonWebToken , que é usado para verificar um JWT e retornar as informações decodificadas. Este método aceita três parâmetros – o token, o secretOrPublicKey e as opções.
No entanto, devido à falta de uma verificação no parâmetro ‘secretOrPublicKey’ para determinar se é uma string ou buffer, os invasores podem enviar um objeto especialmente criado para executar a gravação arbitrária de arquivos na máquina de destino.

Usando a mesma falha, mas uma carga útil ligeiramente diferente na solicitação, a Unit42 relata que seria praticamente possível obter a execução remota de código.
Essa vulnerabilidade é categorizada como “alta gravidade” (pontuação CVSS 3.1: 7.6) e não é crítica porque é complicada de aproveitar, pois os agentes de ameaças só podem explorá-la dentro do processo de gerenciamento secreto.
“Você será afetado apenas se permitir que entidades não confiáveis modifiquem o parâmetro de recuperação de chave do jwt.verify() em um host que você controla”, diz o comunicado de segurança no GitHub .
A equipe Auth0 confirmou que estava trabalhando em uma solução em agosto de 2022 e, finalmente, em 21 de dezembro de 2022, um patch foi lançado com JsonWebToken versão 9.0.0.
A correção inclui a implementação de verificações adicionais para o parâmetro secretOrPublicKey, impedindo-o de analisar objetos maliciosos.
Devido ao JsonWebToken ser uma biblioteca de código aberto amplamente usada, a falha tem repercussões massivas na cadeia de suprimentos e continuará a ter por um período prolongado até que a maioria dos projetos seja atualizada para uma versão segura.
Embora a falha seja difícil de explorar, a ânsia dos invasores de abusar dela não pode ser subestimada devido ao número de alvos em potencial, portanto, aplicar a atualização de segurança disponível deve ser uma prioridade para todos os administradores de sistema.
12 thoughts on “Auth0 corrige falha RCE na biblioteca Json Web Token usada por 22.000 projetos”
Comments are closed.