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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Open-Source-Seal-Security — إصلاح حزمة المصدر المفتوح التي تستخدم tough-cookie 2.5.0 - CVE-2023-26136، | Kitploit
أدوات/GitHubGitHub/ronmadar/open-source-seal-security
التحليل الثابتتحليل الثغرات الأمنيةتحليل الكودأمن سلسلة التوريدالتعلم والتعليم
GitHubronmadar/open-source-seal-security

Open-Source-Seal-Security

إصلاح حزمة المصدر المفتوح التي تستخدم tough-cookie 2.5.0 - CVE-2023-26136،

عرض المستودع

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
منذ 2 سنواتلم تتم المراجعة بعد

مشروع SEAL Security: مهمة مهندس برمجيات مفتوح المصدر

إنشاء إصدار جديد من الحزمة tough-cookie V2.5.0 لإصلاح الثغرة الأمنية الحرجة CVE-2023-26136، مشروع مكتوب بلغة Node.js V20

الإصدارات من الحزمة tough-cookie قبل 4.1.3 معرّضة لثغرة تلوّث النماذج الأولية (Prototype Pollution) بسبب المعالجة غير الصحيحة لملفات تعريف الارتباط عند استخدام CookieJar في وضع rejectPublicSuffixes=false. تنشأ هذه المشكلة من الطريقة التي يتم بها تهيئة الكائنات.

https://nvd.nist.gov/vuln/detail/CVE-2023-26136

تلوّث النماذج الأولية (Prototype Pollution) هو ثغرة تؤثر على JavaScript. يشير تلوّث النماذج الأولية إلى القدرة على حقن خصائص في النماذج الأولية لبنى لغة JavaScript الموجودة، مثل الكائنات. تسمح JavaScript بتغيير جميع سمات الكائن، بما في ذلك سماتها السحرية مثل proto وconstructor وprototype. يتلاعب المهاجم بهذه السمات لاستبدال النموذج الأولي لكائن تطبيق JavaScript الخاص بالكائن الأساسي أو تلويثه عن طريق حقن قيم أخرى. ثم يتم توريث الخصائص الموجودة على Object.prototype بواسطة جميع كائنات JavaScript عبر سلسلة النماذج الأولية. عندما يحدث ذلك، يؤدي الأمر إما إلى رفض الخدمة عن طريق إطلاق استثناءات JavaScript، أو العبث بكود مصدر التطبيق لإجبار مسار الكود الذي يحقنه المهاجم، مما يؤدي إلى تنفيذ التعليمات البرمجية عن بُعد.

هناك طريقتان رئيسيتان يحدث بهما تلوّث النماذج الأولية:

  • الدمج المتكرر غير الآمن للكائنات (Unsafe Object recursive merge)
  • تعريف الخاصية عبر المسار (Property definition by path)

ملاحظة مهمة: https://github.com/salesforce/tough-cookie/issues/282 https://security.snyk.io/package/npm/tough-cookie/2.5.0

=> لإصلاح الثغرة في صنف MemoryCookieStore، تحتاج إلى تعديل طريقة putCookie لمنع تلوّث النماذج الأولية عندما يتم تعيين cookie.domain إلى proto.

https://github.com/salesforce/tough-cookie/pull/283

أ. غيّر tough_cookie_2.5.0\node_modules\tough-cookie\lib\memstore.js

تم تغيير جميع حالات إنشاء كائن جديد في memstore.js من {} Object.create(Object.prototype) إلى Object.create(null) بحيث نستخدم مثيلات كائنات لا تحتوي على خاصية نموذج أولي يمكن تلويثها.

  • مثال: console.log(a = Object.create(null)); في الكائن a - لا توجد خصائص (أو __ proto __)

ب. تم إنشاء ملف جديد، /node_modules/tough-cookie/lib/test-unit.js يُستخدم في VanillaJS وهو موجود في مجلد الاختبارات في ملف cookie_jar_test.js "Issue #282 - Prototype pollution"

الأمر: node test-unit.js

ج. تم إنشاء ملف جديد، /node_modules/tough-cookie/lib/testVerifyVulnerable.js للتحقق من إصلاح السلوك القابل للاستغلال.

الأمر: node testVerifyVulnerable.js

  1. change.diff: https://github.com/ronmadar/Open-Source-Seal-Security/blob/cf768f1932f087c30ebec7fe60c3fca323b4e54b/change.diff

أ. الحزمة العادية tough-cookie V 2.5.0

الأمر: npm install [email protected] && node index.js

ب. حزمة tough-cookie V 2.5.0 المضغوطة بصيغة tgz مع التغييرات

الأمر: npm install ./tough-cookie-2.5.0-PATCHED.tgz && node index.js

ج.

  • الثغرة: تنشأ الثغرة من التعديل المباشر على Object. prototype بإضافة خاصية جديدة newProperty. وهذا يعني أن كل كائن في بيئة JavaScript سيرث هذه الخاصية، مما قد يغير سلوكهم بشكل غير مقصود.

الضرر المحتمل -

  • تلوّث النماذج الأولية: بإضافة خصائص مباشرة إلى Object. prototype، هناك خطر تلويث سلسلة النماذج الأولية بالكامل. يمكن أن يؤدي هذا إلى سلوك غير متوقع عبر التطبيق، حيث قد يتأثر أي كائن يمر عبر سلسلة النماذج الأولية.

  • المخاطر الأمنية: في سياق تطبيق ويب، يمكن للمهاجمين استغلال تلوّث النماذج الأولية للتلاعب بالكائنات والخصائص، مما قد يؤدي إلى ثغرات أمنية مثل تصعيد الامتيازات وتسريب المعلومات.

  • مشكلات التوافق: تعديل النماذج الأولية الأساسية مثل Object. prototype يمكن أن يقدم مشكلات توافق مع مكتبات أو أطر عمل أخرى تعتمد على السلوك القياسي. يمكن أن يسبب هذا أخطاء أو سلوكًا غير متوقع عند دمج التبعيات أو تحديثها. د. مكتوب أعلاه.

  1. رابط إلى مستودع GitHub المنسوخ (fork) الخاص بك للحزمة tough-cookie 2.5.0 https://github.com/ronmadar/tough-cookie

كيفية تثبيت هذا المشروع

  1. استنسخ هذا المشروع
تنزيل الأداة