CVE-2026-76844 in webpack-dev-middlewareالمعلومات

الملخص

بحسب VulDB • 24/08/2026

يحل webpack-dev-middleware طلبًا لملف محلي في دالة getFilenameFromUrl من خلال اختبار مسار الطلب (pathname) ضد حاجز للتصفح غير المصرح به، ثم اقتطاعه عند إزاحة أحرف ثابتة. يتوافق الحاجز، وهو التعبير النمطي UP_PATH_REGEXP المطبق على path.normalize(`./${pathname}`)، فقط مع ".." التي تظهر كجزء مسار كامل، بينما يتم إجراء اختبار الاحتواء عبر مقارنة السلسلة pathname.startsWith(publicPathPathname) ويتم بناء مسار الملف باستخدام path.join(outputPath, pathname.slice(publicPathPathname.length)). عندما لا يحتوي publicPath المُعدّ عليه على شرطة مائلة في النهاية (/) في نهاية المسار، يؤدي طلب مثل GET /assets../.env مقابل publicPath=/assets إلى الحصول على pathname وهو /assets../.env، حيث تقع النقطة-النقطة الوحيدة داخل الجزء "assets.." وبالتالي تتجاوز الحاجز، لكن عملية الاقتطاع بالازاحة تقص ضمن ذلك الجزء وتمرر "../.env" إلى path.join، مما يؤدي إلى حل مسار يتخطى outputPath بمجلد واحد للأعلى. يتطلب قراءة ملف من هذا المسار أن يكون الـ middleware مدعومًا بنظام ملفات فيزيائي (physical filesystem)، وهو ما يحدث عندما تكون writeToDisk مساوية لقيمة true أو عند توفير outputFileSystem مخصص، لأن حجم memfs الافتراضي يحتوي فقط على ناتج البناء. يتم تقييد عمق التصفح بمجلد واحد فقط لأن جزء النقطة-النقطة المفصول بشكل منفصل ينهار أثناء تحليل عنوان URL قبل تشغيل الحاجز. قيمة publicPath الافتراضية "auto" تحل إلى "/" وهي غير متأثرة. هذه إصلاح غير مكتمل لـ CVE-2024-29180: فقد تم إدخال الحاجز وعملية الاقتطاع بالازاحة بواسطة ذلك الإصلاح، وهما موجودان في كل إصدار بدءًا من 5.3.4 و6.1.2 و7.1.0 فصاعدًا.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

مسؤول

VulnCheck

حجز

19/08/2026

إفشاء

24/08/2026

الاعتدال

تمت الموافقة

إدخال

VDB-394673

EPSS

0.00000

KEV

لا

النشاطات

منخفض

المصادر

Do you know our Splunk app?

Download it now for free!