Plataforma
nodejs
Componente
path-to-regexp
Corrigido em
0.1.13
0.1.12
CVE-2024-52798 é uma vulnerabilidade de ReDoS (Regular expression Denial of Service) na biblioteca path-to-regexp. A exploração pode levar a um ataque de negação de serviço (DoS). Afeta versões anteriores a 0.1.12. A correção está disponível na versão 0.1.12.
A vulnerabilidade CVE-2024-52798 em path-to-regexp é causada pela geração de expressões regulares suscetíveis a um comportamento de retrocesso (backtracking) excessivo. Isso afeta versões anteriores a 0.1.12. Um atacante pode explorar esta vulnerabilidade para causar uma negação de serviço (DoS) forçando o sistema a consumir recursos excessivos de CPU ao tentar corresponder a padrões maliciosos. A severidade CVSS é de 7.5, indicando um risco alto. Esta vulnerabilidade está relacionada ao relatório original CVE-2024-45296, sugerindo uma evolução ou descoberta adicional relacionada ao mesmo problema subjacente.
A vulnerabilidade se manifesta quando path-to-regexp gera uma expressão regular que permite um retrocesso excessivo. Isso pode ocorrer ao definir rotas com vários parâmetros e separadores complexos. Um atacante pode fornecer uma entrada cuidadosamente elaborada que faça com que a expressão regular tente múltiplas combinações, esgotando os recursos do sistema. Isso é particularmente preocupante em ambientes de alta carga, onde uma negação de serviço pode ter um impacto significativo.
Applications built on Node.js that utilize the path-to-regexp package for URL routing or parameter parsing are at risk. This includes web applications, APIs, and microservices. Projects relying on older versions of path-to-regexp without proper input validation are particularly vulnerable.
• nodejs / server:
npm list path-to-regexp• nodejs / server:
npm audit path-to-regexp• nodejs / server:
grep -r 'path-to-regexp' ./node_modulesdisclosure
Status do Exploit
EPSS
0.22% (percentil 44%)
CISA SSVC
Vetor CVSS
A solução recomendada é atualizar para a versão 0.1.12 de path-to-regexp. Como medida alternativa, se uma atualização não for imediatamente possível, evite o uso de dois parâmetros dentro de um único segmento de caminho quando o separador não for um ponto (.). Por exemplo, evite padrões como /:a-:b. Alternativamente, defina explicitamente a expressão regular usada para ambos os parâmetros e garanta que eles não se sobreponham, evitando o retrocesso. Esta mitigação reduz a probabilidade de um atacante criar um padrão que acione o problema.
Actualice la biblioteca path-to-regexp a la versión 0.1.12 o superior. Esto solucionará la vulnerabilidad ReDoS. Ejecute `npm install path-to-regexp@latest` o `yarn add path-to-regexp@latest` para actualizar.
Análise de vulnerabilidades e alertas críticos diretamente no seu e-mail.
Backtracking é o processo que um motor de expressões regulares segue para encontrar uma correspondência. Neste caso, uma expressão regular mal construída pode entrar em um loop de retrocesso, tentando múltiplas combinações até esgotar os recursos do sistema.
A versão 0.1.12 corrige a vulnerabilidade, evitando a geração de expressões regulares suscetíveis ao retrocesso excessivo. Atualizar é a maneira mais segura de mitigar o risco.
Se não puder atualizar imediatamente, aplique a mitigação alternativa de evitar o uso de dois parâmetros em um único segmento de caminho com separadores diferentes de pontos.
Se você estiver usando uma versão anterior a 0.1.12 de path-to-regexp e usar rotas com vários parâmetros e separadores complexos, provavelmente será vulnerável.
A mitigação alternativa pode ter um pequeno impacto no desempenho, mas é preferível à negação de serviço causada pela vulnerabilidade.
Envie seu arquivo de dependências e descubra na hora se esta e outras CVEs te atingem.