Plataforma
nodejs
Componente
braces
Corrigido em
3.0.3
3.0.3
A vulnerabilidade CVE-2024-4068 refere-se a uma falha de segurança no pacote braces do NPM, que pode levar à exaustão de memória. Um usuário malicioso pode enviar "chaves desbalanceadas" como entrada, causando um loop infinito que aloca memória heap sem liberar, resultando em um crash do programa. Esta vulnerabilidade afeta versões anteriores a 3.0.3 do pacote braces. A vulnerabilidade foi corrigida na versão 3.0.3.
A vulnerabilidade CVE-2024-4068 no pacote npm braces pode resultar em esgotamento de memória. Isso ocorre devido à falta de limites para a quantidade de caracteres que o pacote pode processar. Um atacante malicioso pode explorar esta vulnerabilidade enviando uma entrada com 'chaves desequilibradas'. Isso dispara um loop infinito no código de análise (lib/parse.js), resultando em alocação contínua de memória sem liberação. Eventualmente, o limite do heap JavaScript é atingido, fazendo com que a aplicação trave. Esta vulnerabilidade é particularmente preocupante para aplicações que processam dados fornecidos pelo usuário, pois um atacante pode facilmente criar uma entrada maliciosa para causar uma negação de serviço ou até mesmo comprometer a segurança do sistema.
A exploração desta vulnerabilidade requer que um atacante seja capaz de controlar a entrada fornecida ao pacote braces. Isso pode ocorrer em aplicações web que processam entrada do usuário ou em qualquer outro cenário onde o pacote braces é usado para analisar padrões de arquivos ou strings. Um atacante pode injetar chaves desequilibradas em uma string de pesquisa, nome de arquivo ou qualquer outro dado passado para o pacote. A facilidade de exploração torna esta vulnerabilidade uma preocupação significativa, especialmente para aplicações amplamente utilizadas.
Applications built with Node.js that directly or indirectly depend on the braces package, particularly those handling user-supplied input without proper validation, are at risk. This includes web applications, command-line tools, and any other Node.js-based software utilizing the braces package for string manipulation or pattern matching.
• nodejs / server:
npm list braces• nodejs / server:
npm audit• nodejs / server: Check application logs for errors related to memory allocation or heap exhaustion. • nodejs / server: Monitor process resource usage (CPU, memory) for sudden spikes indicative of memory exhaustion.
disclosure
Status do Exploit
EPSS
0.22% (percentil 45%)
CISA SSVC
Vetor CVSS
A solução recomendada é atualizar o pacote braces para a versão 3.0.3 ou superior. Esta versão inclui uma correção que limita a quantidade de memória que o analisador pode alocar, prevenindo o loop infinito e o esgotamento de memória. Se uma atualização imediata não for possível, uma mitigação temporária pode ser implementada limitando o comprimento máximo da entrada passada para o pacote braces. Deve ser realizada uma avaliação de risco para determinar a probabilidade de exploração e o impacto potencial no sistema. Além disso, monitorar o uso de memória da aplicação pode ajudar a detectar e mitigar possíveis ataques.
Actualice el paquete `braces` a la versión 3.0.3 o superior. Esto se puede hacer ejecutando `npm install braces@latest` o `yarn upgrade braces@latest` en su proyecto. Asegúrese de verificar que la actualización no cause conflictos con otras dependencias.
Análise de vulnerabilidades e alertas críticos diretamente no seu e-mail.
Refere-se a uma string contendo mais chaves de abertura do que de fechamento, ou vice-versa. Por exemplo, '{[()]' ou '()[]}'. O analisador do pacote braces não lida corretamente com esses casos, levando ao loop infinito.
Se sua aplicação usa o pacote braces em uma versão inferior a 3.0.3, ela é vulnerável. Você pode verificar a versão do pacote usando o comando npm list braces no seu terminal.
Como mitigação temporária, limite o comprimento máximo da entrada passada para o pacote braces. Isso pode ajudar a prevenir o esgotamento de memória, mas não é uma solução completa.
Sim, existem ferramentas de análise de segurança de software (SAST) e gerenciamento de vulnerabilidades que podem detectar esta vulnerabilidade em seu código.
A vulnerabilidade pode levar a uma negação de serviço (DoS) esgotando a memória da aplicação. Em casos mais graves, pode permitir que um atacante execute código malicioso no sistema.
Envie seu arquivo de dependências e descubra na hora se esta e outras CVEs te atingem.