تم العثور على ثلاث نقاط ضعف في NPM ، والتي تم إصلاحها في NPM 6.13.4

المطورين من هم المسؤولون عن المشروع من مدير الحزم NPM ، صدر صدر مؤخرا تحديث تصحيحي إلى NPM 6.13.4 مضمن في تسليم Node.js ويستخدم لتوزيع وحدات JavaScript النمطية.

كانت هذه النسخة التصحيحية الجديدة للمدير أطلقت من أجل حل ثلاث نقاط ضعف تسمح بتعديل ملفات النظام العشوائية أو الكتابة فوقها عند تثبيت حزمة أعدها مهاجم.

CVE-2019-16775

هذا الضعف يؤثر على إصدارات NPM CLI السابقة للإصدار 6.13.3 ، حسنا أنت هم عرضة لكتابة الملفات التعسفية. قد تنشئ الحزم روابط رمزية لملفات خارج المجلد node_modules من خلال حقل بن بعد التثبيت.

إدخال تم إنشاؤه بشكل صحيح في الحقل bin package.json قد يسمح لمحرر الحزمة بإنشاء ارتباط رمزي يشير إلى ملفات عشوائية على نظام المستخدم عند تثبيت الحزمة. لا يزال هذا السلوك ممكنًا من خلال البرامج النصية للتثبيت.

CVE-2019-16776

في هذا الضعف تتأثر إصدارات NPM CLI السابقة للإصدار 6.13.3 بكتابة ملف عشوائية. نظرًا لأنه لا يمكنك منع الوصول إلى المجلدات خارج مجلد node_modules المقصود من خلال حقل bin.

يسمح الإدخال الذي تم إنشاؤه بشكل صحيح في الحقل bin package.json لمحرر الحزمة بتعديل الملفات العشوائية على نظام المستخدم والوصول إليها عند تثبيت الحزمة. لا يزال هذا السلوك ممكنًا من خلال البرامج النصية للتثبيت.

في حقل bin ، تم السماح بالطرق ذات "/../"

CVE-2019-16777

وأخيرا، تعد إصدارات NPM CLI السابقة للإصدار 6.13.4 عرضة للثغرة الأمنية إلى ملف تعسفي الكتابة. نظرًا لأنه لا يمكنك منع الثنائيات الأخرى من الكتابة فوق الثنائيات المثبتة عالميًا.

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

يمكنك فقط استبدال الملفات الموجودة في الدليل الوجهة حيث تم تثبيت الملفات القابلة للتنفيذ (عادةً / usr ، / local ، / bin).

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

قام فريق الأمان في npm، Inc. بفحص السجل بحثًا عن أمثلة لهذا الهجوم ، ولم يعثر على أي حزم منشورة في السجل مع هذا الاستغلال. هذا لا يضمن أنه لم يتم استخدامه ، ولكن هذا يعني أنه لا يتم استخدامه حاليًا في الحزم المنشورة في السجل.

سنستمر في المراقبة واتخاذ الإجراءات لمنع الجهات السيئة من استغلال هذه الثغرة الأمنية في المستقبل. ومع ذلك ، لا يمكننا فحص جميع المصادر الممكنة لحزم npm (السجلات الخاصة ، والمرايا ، ومستودعات git ، وما إلى ذلك) لذلك من المهم التحديث في أقرب وقت ممكن.

استكشاف الأخطاء وإصلاحها

كحل رئيسي ، يوصى بالتحديث إلى الإصدار التصحيحي الجديد حيث تم تحديث الحزمة. json تحليل المكتبات المستخدمة في NPM v6.13.3 بطريقة من شأنها تعقيم والتحقق من صحة جميع الإدخالات في حقل bin لإزالة الشرطات المائلة الأحرف الأولى ، وإدخالات المسار ، والوسائل الأخرى للهروب من المسار ، باستخدام أداة المسار التي تم اختبارها جيدًا والموثوقة للغاية والمضمنة في Node.js.

على أية حال، كحل بديل ، يمكن تثبيته مع الخيار - تجاهل النصوص، والذي يحظر تشغيل حزم برامج التشغيل المدمجة.

بدون مزيد من اللغط ، إذا كنت تريد معرفة المزيد عن الأخطاء ، يمكنك التحقق من التفاصيل في منشور مدونة npm في الرابط التالي.

أخيرًا ، بالنسبة لأولئك الذين يرغبون في تثبيت الإصدار الجديد ، يمكنهم القيام بذلك من القنوات الرسمية أو عن طريق اختيار التجميع من شفرة المصدر. لهذا يمكنك اتباع التعليمات الموجودة في الرابط التالي.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.