PT-2026-28569

CVE-2026-33937

·

تاريخ النشر

2026-03-26

·

تاريخ التحديث

2026-10-30

الوصف من

CVSS 2.0
10
حرجة
المقاييسAV:N/AC:L/Au:N/C:C/I:C/A:C
اسم البرنامج المعرض للخطر والإصدارات المتأثرة
إصدارات Handlebars من 4.0.0 إلى 4.7.8
الوصف
يسمح Handlebars بتنفيذ التعليمات البرمجية عن بُعد (RCE) من خلال كائن شجرة الصياغة المجردة (AST) المصمم خصيصًا. تقبل الدالة Handlebars.compile() إما سلسلة قالب أو شجرة AST تم تحليلها مسبقًا. عند توفير شجرة AST، يتم إرسال الحقل value الخاص بعقدة NumberLiteral في شجرة AST مباشرةً إلى JavaScript الذي تم إنشاؤه دون تنقية مناسبة. وهذا يسمح للمهاجم الذي يمكنه تزويد compile() بكائن AST مُصمم خصيصًا بحقن وتنفيذ كود JavaScript تعسفي على الخادم. يقع مسار الكود المعرض للخطر في lib/handlebars/compiler/javascript-compiler.js، حيث تُلحق قيم NumberLiteral بالكود المُنشأ دون إجراء عملية الهروب. أي نقطة نهاية تقوم بإلغاء تسلسل JSON الذي يتحكم فيه المستخدم وتمرر النتيجة مباشرةً إلى Handlebars.compile() تكون عرضة للاستغلال. يمكن للمهاجم استغلال هذا لتنفيذ أوامر على الخادم، كما يتضح من إثبات المفهوم الذي يستخدم process.getBuiltinModule(’child process‘).execFileSync(’id‘) لتنفيذ الأمر ’id‘.
التوصيات
تتأثر إصدارات Handlebars الأقدم من 4.7.9 بهذه الثغرة.
تحقق من نوع المدخلات قبل استدعاء Handlebars.compile(): تأكد من أن الوسيطة هي دائمًا string، وليست أبدًا كائنًا عاديًا أو قيمة تم فك تسلسلها من JSON.
استخدم إصدار Handlebars المخصص لوقت التشغيل فقط (handlebars/runtime) على الخادم إذا كانت القوالب مُجمَّعة مسبقًا في وقت البناء؛ حيث لن تكون compile() متاحة.
قابلية الاستغلال
استغلال
إصلاح
التأثيرات
الباحثون
المورّدون
المنتجات المتأثرة
المعرّفات ذات الصلة
GHSA-2W6W-674Q-4C4Q
CLEANSTART-2026-AD27625
CLEANSTART-2026-BE61221
CLEANSTART-2026-CI51547
CLEANSTART-2026-KS09647
CLEANSTART-2026-LC05413
CLEANSTART-2026-SV35371
CLEANSTART-2026-TW25027
CLEANSTART-2026-TZ34913
CLEANSTART-2026-XR95601
ECHO-D8F1-78D6-9F01
وجدت خطأً في الوصف؟ لديك ما تضيفه؟ لا تتردد في مراسلتنا 👾