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.
7 thoughts on “Auth0 corrige falha RCE na biblioteca Json Web Token usada por 22.000 projetos”
Comments are closed.