Lodash, uma popular biblioteca npm usada por mais de 4 milhões de projetos somente no GitHub, é afetada por uma vulnerabilidade de segurança de alta gravidade que pode permitir que invasores comprometam a segurança dos serviços afetados usando a biblioteca e sua respectiva base de usuários.
Lodash é uma biblioteca JavaScript que contém ferramentas para simplificar a programação com strings, números, matrizes, funções e objetos, ajudando os programadores a escrever e manter seu código JavaScript de forma mais eficiente.
Liran Tal, um defensor dos desenvolvedores da plataforma de segurança de código aberto Snyk, publicou recentemente detalhes e uma exploração de prova de conceito de um protótipo de segurança de poluição de alta gravidade que afeta todas as versões do lodash, incluindo a última versão 4.17.11.
A vulnerabilidade, atribuída como CVE-2019-10744, afeta potencialmente um grande número de projetos frontend devido à popularidade do lodash que está sendo baixado a uma taxa de mais de 80 milhões de vezes por mês.
A poluição de protótipo é uma vulnerabilidade que permite que invasores modifiquem o protótipo de objeto JavaScript de um aplicativo da Web, que é como uma variável que pode ser usada para armazenar vários valores com base em uma estrutura predefinida.
Essas estruturas e valores padrão são chamados de protótipos que impedem o hashing de um aplicativo quando nenhum valor é definido.
No entanto, se um invasor conseguir injetar propriedades em protótipos de linguagem JavaScript existentes e manipular esses atributos para substituir ou poluir, isso poderá afetar o modo como o aplicativo processa objetos JavaScript por meio da cadeia de protótipos, levando a um problema de negação de serviço ou execução remota de código vulnerabilidade.
De acordo com Tal, a função “defaultsDeep” na biblioteca Lodash poderia ser induzida a adicionar ou modificar propriedades de Object.prototype usando uma carga útil de construtor, o que poderia resultar em falha do aplicativo da Web ou alterar seu comportamento, dependendo do caso de uso afetado. .
Deve-se notar que a exploração de falhas de protótipos de poluição não é fácil e requer um conhecimento profundo de como cada aplicativo da Web direcionado funciona.
O pesquisador responsável relatou esta vulnerabilidade a John Dalton, mantenedor do Lodash, e propôs correções (solicitações de pull 1 e 2) que serão incluídas na próxima versão da biblioteca, que deverá ser lançada muito em breve.
Se o seu projeto também usa o lodash, recomenda-se que você atualize imediatamente sua biblioteca assim que o patch oficial for lançado ou aplique manualmente as correções.