سه آسیب پذیری در NPM پیدا شد که در NPM 6.13.4 رفع شده است

توسعه دهندگان که مسئول پروژه هستند از مدیر بسته NPM ، منتشر شد به تازگی آزاد شده است به روزرسانی اصلاحی NPM 6.13.4 در تحویل Node.js موجود است و برای توزیع ماژول های JavaScript استفاده می شود.

این نسخه اصلاحی جدید مدیر بود به منظور حل سه آسیب پذیری راه اندازی شده است که اجازه می دهد هنگام نصب بسته ای که توسط مهاجم تهیه شده است ، پرونده های دلخواه سیستم اصلاح یا رونویسی شوند.

CVE-2019-16775

این آسیب پذیری نسخه های NPM CLI قبل از 6.13.3 را تحت تأثیر قرار می دهد ، خوبی آنها در برابر نوشتن پرونده های خودسرانه آسیب پذیر هستند. بسته ها ممکن است پیوندهای نمادین به پرونده های خارج از پوشه ایجاد کنند node_modules پس از نصب از طریق سطل bin.

یک ورودی درست در قسمت bin pack.json ساخته شده است به ویرایشگر بسته اجازه می دهد تا یک پیوند نمادین با اشاره به پرونده های دلخواه ایجاد کند هنگام نصب بسته بر روی سیستم کاربر. این رفتار هنوز از طریق اسکریپت های نصب امکان پذیر است.

CVE-2019-16776

در این آسیب پذیری نسخه های NPM CLI قبل از 6.13.3 تحت تأثیر نوشتن خودسرانه پرونده قرار می گیرند. از آنجا که نمی توانید از طریق قسمت bin از دسترسی به پوشه های خارج از پوشه node_modules مورد نظر جلوگیری کنید.

یک ورودی درست در قسمت bin package.json به ویرایشگر بسته اجازه می دهد تا هنگام نصب بسته ، پرونده های دلخواه را در سیستم کاربر تغییر داده و به آنها دسترسی پیدا کند. این رفتار هنوز از طریق اسکریپت های نصب امکان پذیر است.

در مسیرهای bin bin با "/../" مجاز بود

CVE-2019-16777

در نهایت، نسخه های NPM CLI قبل از 6.13.4 در این آسیب پذیری آسیب پذیر هستند به پرونده دلخواه بازنویسی کنید. از آنجا که نمی توانید از جایگزینی سایر باینری ها نسبت به رونویسی باینری های موجود در سطح جهان جلوگیری کنید.

به عنوان مثال: اگر بسته ای به صورت جهانی نصب شده باشد و یک باینری سرویس ایجاد کند ، هر نصب بعدی بسته هایی که یک باینری سرویس نیز ایجاد می کنند سرویس باینری قدیمی را بازنویسی می کند. این رفتار هنوز در نصب های محلی و همچنین از طریق اسکریپت های نصب مجاز است.

فقط می توانید پرونده ها را در فهرست مقصدی که پرونده های اجرایی در آن نصب شده است جایگزین کنید (معمولاً / usr ، / local ، / bin).

اگرچه یک عامل مهم برای این آسیب پذیری ها این است که شخصی که می خواهد از این نقص ها استفاده کند مجبور است قربانی خود را مجبور کند بسته را با ورودی مخصوص طراحی شده بن نصب کند. با این حال ، همانطور که در گذشته مشاهده کردیم ، این یک مانع غیر قابل حل نیست.

تیم امنیتی در npm، Inc در حال اسکن رجیستری برای نمونه هایی از این حمله بوده است و هیچ بسته ای را با این سو published استفاده در رجیستری منتشر نکرده است. این تضمین نمی کند که از آن استفاده نشده است ، اما به این معنی است که در حال حاضر در بسته های منتشر شده در رجیستری استفاده نمی شود.

ما برای جلوگیری از سو actors استفاده بازیگران بد از این آسیب پذیری در آینده نظارت و اقدام خواهیم کرد. با این حال ، ما نمی توانیم همه منابع احتمالی بسته های npm (ثبت های خصوصی ، آینه ها ، مخازن git و غیره) را اسکن کنیم ، بنابراین مهم است که در اسرع وقت آنها را به روز کنید.

عیب یابی

به عنوان راه حل اصلی ، توصیه می شود که نسخه جدید اصلاحی را به عنوان بسته به روز کنید. کتابخانه های تجزیه کننده json که در NPM v6.13.3 استفاده می شوند به روشی به روز شده اند که کلیه ورودی های موجود در قسمت bin را پاک و اعتبار سنجی می کند تا حروف اول برش را حذف کند ، ورودی های مسیر و سایر راه های فرار از مسیر ، با استفاده از ابزار مسیر کاملاً آزمایش شده و بسیار قابل اعتماد که در Node.js تعبیه شده است.

اگر چه، به عنوان یک راه حل ، می توان آن را با گزینه نصب کرد - نادیده گرفتن اسکریپت ها، که بسته های درایور داخلی را اجرا نمی کند.

بدون آگاهی بیشتر ، اگر می خواهید درباره اشکالات بیشتر بدانید ، می توانید جزئیات را در پست وبلاگ npm بررسی کنید در لینک زیر.

سرانجام ، برای کسانی که می خواهند نسخه جدید را نصب کنند ، می توانند این کار را از طریق کانال های رسمی یا با انتخاب کامپایل از کد منبع آن انجام دهند. برای این منظور می توانید دستورالعمل های زیر را دنبال کنید لینک زیر

 


محتوای مقاله به اصول ما پیوست اخلاق تحریریه. برای گزارش یک خطا کلیک کنید اینجا.

اولین کسی باشید که نظر

نظر خود را بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند با *

*

*

  1. مسئول داده ها: میگل آنخل گاتون
  2. هدف از داده ها: کنترل هرزنامه ، مدیریت نظرات.
  3. مشروعیت: رضایت شما
  4. ارتباط داده ها: داده ها به اشخاص ثالث منتقل نمی شوند مگر با تعهد قانونی.
  5. ذخیره سازی داده ها: پایگاه داده به میزبانی شبکه های Occentus (EU)
  6. حقوق: در هر زمان می توانید اطلاعات خود را محدود ، بازیابی و حذف کنید.