Jsdiff · Jsdiff · CVE-2026-24001
Nome do Software Vulnerável e Versões Afetadas
jsdiff versões anteriores a 8.0.3
jsdiff versões anteriores a 5.2.2
jsdiff versões anteriores a 4.0.4
Descrição
jsdiff é uma implementação JavaScript de diferenciação de texto. Ao processar um arquivo de patch, se os cabeçalhos de nome de arquivo contiverem caracteres específicos de quebra de linha (`r`, `u2028` ou `u2029`), o método `parsePatch` pode entrar em um loop infinito, levando ao consumo excessivo de memória e a um possível ataque de negação de serviço (DoS). O método `applyPatch` também é afetado quando chamado com uma representação em string de um patch, já que utiliza internamente o método `parsePatch`. Uma vulnerabilidade ReDOS (Negação de Serviço por Expressão Regular) também existe quando esses caracteres de quebra de linha estão presentes no cabeçalho do patch, potencialmente fazendo com que o método `parsePatch` leve tempo O(n³) para analisar um cabeçalho maliciosamente elaborado de comprimento n. Este problema não requer uma carga útil grande para ser acionado, e limites de tamanho na entrada do usuário não oferecem proteção. Aplicações que chamam `parsePatch` com patches fornecidos pelo usuário são suscetíveis.
Recomendações
jsdiff versões anteriores a 8.0.3: Atualize para a versão 8.0.3 ou superior.
jsdiff versões anteriores a 5.2.2: Atualize para a versão 5.2.2 ou superior.
jsdiff versões anteriores a 4.0.4: Atualize para a versão 4.0.4 ou superior.
Como solução temporária, evite analisar patches que contenham os caracteres `r`, `u2028` ou `u2029`.