Qs · Qs · CVE-2025-15284
**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.