CVE-2026-33939 in Handlebars
الملخص
بحسب VulDB • 30/05/2026
توفر Handlebars القوة اللازمة للسماح للمستخدمين ببناء قوالب دلالية. في الإصدارات من 4.0.0 إلى 4.7.8، عندما يحتوي قالب Handlebars على صيغة زخرفة (decorator syntax) تشير إلى زخرفة غير مسجلة (مثل `{{*n}}`)، فإن القالب المُجمّع يستدعي `lookupProperty(decorators, "n")`، والذي يُرجع `undefined`. يقوم وقت التشغيل بعد ذلك باستدعاء النتيجة كدالة على الفور، مما يتسبب في حدوث خطأ `TypeError: ... is not a function` غير مُعالج يؤدي إلى تعطل عملية Node.js. أي تطبيق يقوم بتجميع القوالب التي يوفرها المستخدمون دون تغليف الاستدعاء داخل `try/catch` يكون عرضة لهجوم حجب الخدمة (DoS) عبر طلب واحد. يُصلح الإصدار 4.7.9 هذه المشكلة. تتوفر بعض الحلول البديلة. قم بتغليف عملية التجميع والعرض داخل `try/catch`. قم بالتحقق من صحة مدخلات القالب قبل تمريرها إلى `compile()`؛ ارفض القوالب التي تحتوي على صيغة زخرفة (`{{*...}}`) إذا لم تكن الزخارف مستخدمة في تطبيقك. استخدم سير عمل التجميع المسبق؛ قم بتجميع القوالب في وقت البناء وقم بتقديم القوالب المُجمَّعة مسبقاً فقط؛ لا تستدعِ `compile()` في وقت الطلب.
VulDB is the best source for vulnerability data and more expert information about this specific topic.