PT-2025-53805 · Qs+2 · Qs+2
Samipmainali
·
Publicado
2025-01-01
·
Atualizado
2026-06-04
·
CVE-2025-15284
CVSS v2.0
7.8
Alta
| Vetor | AV:N/AC:L/Au:N/C:N/I:N/A:C |
Nome do Software Vulnerável e Versões Afetadas
Versões do qs anteriores à 6.14.1
Descrição
Existe uma falha na biblioteca qs (módulos de parse) onde a opção
arrayLimit não aplica corretamente os limites ao usar notação de colchetes em query strings, levando a uma potencial Negação de Serviço (DoS) HTTP. A opção arrayLimit valida apenas a notação indexada (ex.: a[0]=1), mas contorna a validação para notação de colchetes (ex.: a[]=1). Isso permite que atacantes esgotem a memória do servidor enviando solicitações com um grande número de elementos de array em notação de colchetes. O código vulnerável está localizado em lib/parse.js, linhas 159-162, onde utils.combine([], leaf) é usado sem verificar o arrayLimit. Um atacante pode explorar isso enviando uma requisição HTTP manipulada para um endpoint de API como /api/search com uma query string contendo numerosos parâmetros usando notação de colchetes, como filters[]=x&filters[]=x&...&filters[]=x. A aplicação então analisa essa query string usando qs.parse() com um arrayLimit especificado, mas a biblioteca falha em aplicar o limite, resultando em consumo excessivo de memória. O parâmetro vulnerável é a própria query string, especificamente os valores associados a parâmetros de array como filters.Recomendações
Atualize o qs para a versão 6.14.1 ou posterior.
Correção
DoS
Memory Leak
RCE
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Debian
Rocky Linux
Qs