Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2021-26700 — إثبات المفهوم لـ CVE-2021-26700: تنفيذ التعليمات البرمجية عن بُعد في إضافة VSCode npm-script عبر settings.json ضار في مساحة العمل، مع إرشادات مفصلة للاستغلال والمعالجة. | Kitploit
أدوات/GitHubGitHub/jackadamson/cve-2021-26700
تحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويبأمن سلسلة التوريدالتعلم والتعليم
GitHubjackadamson/cve-2021-26700

CVE-2021-26700

إثبات المفهوم لـ CVE-2021-26700: تنفيذ التعليمات البرمجية عن بُعد في إضافة VSCode npm-script عبر settings.json ضار في مساحة العمل، مع إرشادات مفصلة للاستغلال والمعالجة.

عرض المستودع
2016منذ 5 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

ثغرة تنفيذ التعليمات البرمجية عن بُعد في إضافة NPM لـ VSCode

تم إصلاحها في 10 فبراير 2021 في https://github.com/microsoft/vscode-npm-scripts/commit/cdd5e507564e0cc0f60bcccf184822be3fd73e07

https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-26700

ملخص

ثغرة تنفيذ التعليمات البرمجية عن بُعد في إضافة eg2.vscode-npm-script (تم اختبارها على الإصدار 0.3.13) لـ VSCode تعني أن ملف .vscode/settings.json خبيث في مشروع يمكن أن يؤدي إلى تنفيذ تعليمات برمجية عن بُعد عند فتح ملف باسم package.json.

لم تكن هذه الثغرة ضمن أي برنامج مكافآت ثغرات Microsoft نشط، ولكن تم الإبلاغ عنها والتعامل معها من قبل MSRC.

الوصف

بدون وجود ملف .vscode/settings.json خبيث في مستودع، عند فتح ملف package.json مع تثبيت إضافة ، سيتم تنفيذ الأمر .

eg2.vscode-npm-script
npm ls --depth 0 --json

عن طريق تعيين المفتاح npm.bin في ملف settings.json الخاص بالمشروع، على سبيل المثال إلى ./payload.sh، سينفذ فتح package.json بدلاً من ذلك الأمر ./payload.sh ls --depth 0 --json من الدليل الذي يحتوي على package.json.

تكسر هذه الثغرة الافتراض بأنه يمكن قراءة الكود المصدري بأمان.

مثال على الهجوم

مثال لكيفية استخدام المهاجم لهذا:

  1. ينشر المهاجم مستودعًا مثل linux-poc المرفق.
  2. يستنسخ الهدف المستودع لقراءة الكود المصدري في VSCode.
  3. يفتح الهدف ملف package.json.
  4. يتم تنفيذ payload.sh.

خيارات المعالجة

رأيت طريقتين للتخفيف من مخاطر settings.json الخبيثة في مساحة عمل VSCode:

التخفيف 1 - إعدادات المستخدم فقط

منع تعيين الإعدادات لكل مساحة عمل. هذا مُستخدم بالفعل في VSCode لـ git.path و terminal.integrated.shell.linux وبعض الإعدادات الأخرى.

قد يكسر هذا التوافق لبعض المستخدمين، ولكن له سابقة.
المرجع: https://vscode.readthedocs.io/en/latest/getstarted/settings/#settings-and-security

التخفيف 2 - طلب تأكيد

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

إثبات المفهوم

لينكس

  1. قم بتثبيت الإصدار الضعيف (0.3.13 أو أقدم) من إضافة VSCode eg2.vscode-npm-script.
  2. افتح مجلد linux-poc كمجلد في VSCode.
  3. في VSCode، انقر على ملف package.json لعرضه.
  4. سيتم إنشاء الملف /tmp/output.txt لإثبات التنفيذ.

ويندوز

  1. قم بتثبيت الإصدار الضعيف (0.3.13 أو أقدم) من إضافة VSCode eg2.vscode-npm-script.
  2. افتح مجلد windows-poc كمجلد في VSCode.
  3. في VSCode، انقر على ملف package.json لعرضه.
  4. سيتم فتح calc.exe.

ملاحظة: لم أتمكن من استخدام مسار نسبي للملف الثنائي في ويندوز، لكن قد يكون هذا بسبب عدم إلمامي الكافي بويندوز.

تنزيل الأداة