ثغرة أمنية في حزمة pac-resolver NPM مع 3 ملايين عملية تنزيل أسبوعيًا

تحتوي حزمة pac-resolver NPM، التي لديها أكثر من 3 ملايين عملية تنزيل أسبوعيًا، على ثغرة أمنية (CVE-2021-23406) تسمح بتنفيذ كود JavaScript الخاص بها في سياق التطبيق عند إرسال طلبات HTTP من مشاريع Node.js التي دعم وظيفة التكوين التلقائي للخادم الوكيل.

تقوم حزمة pac-resolver بتوزيع ملفات PAC التي تتضمن برنامجًا نصيًا لتكوين الوكيل تلقائيًا. يحتوي ملف PAC على كود JavaScript عادي مع وظيفة FindProxyForURL التي تحدد منطق اختيار الوكيل اعتمادًا على المضيف وعنوان URL المطلوب. يكمن جوهر الثغرة الأمنية في أنه لتنفيذ تعليمات JavaScript البرمجية في pac-resolver، تم استخدام واجهة برمجة تطبيقات VM المتوفرة في Node.js، والتي تسمح لك بتنفيذ تعليمات JavaScript البرمجية في سياق مختلف لمحرك V8.

تم وضع علامة واضحة على واجهة برمجة التطبيقات المحددة في الوثائق على أنها غير مخصصة لتشغيل تعليمات برمجية غير موثوقة، لأنها لا توفر عزلًا كاملاً للتعليمات البرمجية التي يتم تشغيلها وتسمح بالوصول إلى السياق الأصلي. تم حل المشكلة في pac-resolver 5.0.0، والذي تم نقله لاستخدام مكتبة vm2، التي توفر مستوى أعلى من العزل المناسب لتشغيل تعليمات برمجية غير موثوقة.

ثغرة أمنية في حزمة pac-resolver NPM مع 3 ملايين عملية تنزيل أسبوعيًا

عند استخدام إصدار ضعيف من pac-resolver، يمكن للمهاجم من خلال نقل ملف PAC المصمم خصيصًا تحقيق تنفيذ كود JavaScript الخاص به في سياق كود المشروع باستخدام Node.js، إذا كان هذا المشروع يستخدم مكتبات لها تبعيات مع محلل باك. المكتبات الأكثر شيوعًا من بين المكتبات التي بها مشكلات هي Proxy-Agent، المُدرجة على أنها تعتمد على 360 مشروعًا، بما في ذلك urllib، وaws-cdk، وmailgun.js، وfirebase-tools، بإجمالي أكثر من ثلاثة ملايين عملية تنزيل أسبوعيًا.

إذا قام تطبيق له تبعيات على pac-resolver بتحميل ملف PAC مقدم من نظام يدعم بروتوكول التكوين التلقائي لوكيل WPAD، فيمكن للمهاجمين الذين لديهم إمكانية الوصول إلى الشبكة المحلية استخدام توزيع إعدادات الوكيل عبر DHCP لإدراج ملفات PAC الضارة.

المصدر: opennet.ru

إضافة تعليق