Plataforma
nodejs
Componente
semver-regex
Corrigido em
3.1.3
4.0.1
3.1.3
A vulnerabilidade CVE-2021-3795 é um problema de negação de serviço (DoS) presente na biblioteca semver-regex do npm. Essa falha permite que um atacante explore a complexidade ineficiente da expressão regular, causando um consumo excessivo de recursos e potencialmente derrubando o serviço. A vulnerabilidade afeta versões anteriores à 3.1.3, e foi corrigida na versão 3.1.3.
A vulnerabilidade CVE-2021-3795 em sindresorhus/semver-regex explora a complexidade ineficiente de expressões regulares. Em cenários onde o pacote é utilizado para validar ou manipular strings de versões (por exemplo, em scripts de atualização, gerenciamento de dependências ou validação de entrada de usuário), um atacante pode fornecer uma string de versão maliciosa, extremamente longa e complexa, projetada para sobrecarregar o processador e consumir recursos significativos do sistema. Essa sobrecarga pode levar a uma negação de serviço (DoS), tornando o aplicativo ou sistema indisponível para usuários legítimos. O risco de dados em si é baixo, pois a vulnerabilidade não permite a exfiltração direta de informações confidenciais. No entanto, a indisponibilidade do serviço pode impactar a disponibilidade de dados e recursos associados. O raio de impacto depende da forma como o pacote semver-regex é integrado no projeto. Se usado em um ponto central de validação, o impacto pode ser amplo, afetando vários componentes. Se usado em um contexto mais limitado, o impacto será restrito a essa área específica. A complexidade da expressão regular, combinada com a falta de limites adequados no processamento, é a raiz do problema, permitindo que strings de entrada maliciosas causem um impacto desproporcional.
Atualmente, de acordo com o KEV, não existem relatos públicos de exploração ativa da vulnerabilidade CVE-2021-3795. Embora não haja um Proof of Concept (PoC) publicamente disponível, a natureza da vulnerabilidade (ineficiência de expressões regulares) torna a exploração teoricamente viável. A ausência de exploração pública não diminui a importância de aplicar a correção, pois a descoberta e a subsequente exploração podem ocorrer a qualquer momento. A urgência de aplicar a correção é considerada moderada a alta, especialmente para projetos que utilizam semver-regex em contextos críticos ou que processam dados de versões de fontes não confiáveis. A facilidade de criar strings de versão maliciosas torna a vulnerabilidade acessível a atacantes com conhecimento básico de expressões regulares.
Applications and services built on Node.js that utilize the semver-regex package for version validation or processing are at risk. This includes projects that handle user-provided version information, interact with package managers, or rely on external systems that provide version strings. Specifically, projects using older versions of npm or yarn that automatically install vulnerable dependencies are particularly susceptible.
• nodejs / server:
npm list semver-regexIf the output shows a version prior to 3.1.3, the system is vulnerable. • nodejs / server:
npm audit semver-regexThis command will identify vulnerable packages in your project.
• nodejs / supply-chain: Examine package.json files for dependencies on semver-regex and check their versions.
disclosure
Status do Exploit
EPSS
0.23% (percentil 45%)
Vetor CVSS
A correção para CVE-2021-3795 é simples: atualizar o pacote sindresorhus/semver-regex para a versão 3.1.3 ou superior. Esta versão inclui uma implementação otimizada da expressão regular que mitiga a complexidade excessiva. Se a atualização imediata não for possível devido a restrições de compatibilidade ou dependências, uma solução paliativa (workaround) pode ser implementar limites de tamanho e complexidade nas strings de versão que são passadas para a função de validação. Por exemplo, restringir o comprimento máximo da string de versão ou usar uma expressão regular mais simples para uma validação inicial antes de usar semver-regex. É crucial testar cuidadosamente qualquer workaround para garantir que não introduza novos problemas ou vulnerabilidades. Após a atualização ou implementação do workaround, é recomendado verificar se a validação de versões está funcionando corretamente e se o sistema não está mais vulnerável a ataques de negação de serviço baseados em expressões regulares complexas. A verificação pode incluir testes com strings de versão longas e complexas para garantir que o processamento seja eficiente e não cause sobrecarga.
Actualice la dependencia semver-regex a la versión 4.0.1 o superior. Si está utilizando una versión 3.x, actualice a la versión 3.1.3 o superior. Esto corrige la vulnerabilidad de complejidad ineficiente de la expresión regular.
Análise de vulnerabilidades e alertas críticos diretamente no seu e-mail.
CVE-2021-3795 is a Denial of Service vulnerability in the semver-regex Node.js package, allowing attackers to cause excessive CPU usage with crafted version strings.
You are affected if your project uses semver-regex versions prior to 3.1.3. Check your package.json file and run npm audit semver-regex to confirm.
Upgrade the semver-regex package to version 3.1.3 or higher using npm install [email protected] or your preferred package manager.
While no confirmed active exploitation campaigns are publicly known, the ease of exploitation makes it a potential target.
Refer to the npm advisory for CVE-2021-3795: https://www.npmjs.com/advisories/1811
Envie seu arquivo de dependências e descubra na hora se esta e outras CVEs te atingem.