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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2023-26136 — يحتوي هذا المستودع على حل لثغرة CVE-2023-26136. | Kitploit
أدوات/GitHubGitHub/morrisel/cve-2023-26136
التحليل الثابتتحليل الثغرات الأمنيةتحليل الكودأمن سلسلة التوريدالأوراق والأبحاثالتعلم والتعليم
GitHubmorrisel/cve-2023-26136

CVE-2023-26136

يحتوي هذا المستودع على حل لثغرة CVE-2023-26136.

عرض المستودع
منذ سنة واحدةلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

البحث في الثغرة الأمنية CVE-2023-26136

الوصف

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

الهدف والإصلاح

يهدف هذا المشروع إلى توفير إصدار مصحح من [email protected] يزيل الثغرة الأمنية CVE-2023-26136 مع ضمان التوافق الخلفي.

لإصلاح الثغرة، قمنا بتعديل memstore.js لضمان تخزين ملفات تعريف الارتباط في كائن دون مخاطر تلوث النموذج الأولي، وذلك عن طريق استبدال تهيئة الكائن القياسية بـ Object.create(null). يمنع هذا التلاعب بالنموذج الأولي عبر أسماء ملفات تعريف الارتباط المصممة بشكل خبيث.

البنية

في دليل tough-cookie/، يمكننا العثور على دليلين إضافيين يحتويان على الإصدارين الأصلي والمصحح من tough-cookie:

  1. الإصدار الأصلي (Original v2.5.0/) – إصدار tough-cookie 2.5.0 غير المعدل، وهو معرض للثغرة.
  2. الإصدار المصحح (v2.5.0-PATCHED/) – إصدار معدل يتضمن إصلاحًا لـ CVE-2023-26136.

التثبيت

لتثبيت الإصدار الأصلي المعرض للثغرة:

root@kitploit:~
npm install [email protected]

تفاصيل التصحيح

التصحيح المطبق يغير طريقة تخزين ملفات تعريف الارتباط: this.idx = {}; تم تغييرها إلى: this.idx = Object.create(null);

يمنع هذا المهاجمين من حقن الخصائص في سلسلة النموذج الأولي واستغلال الثغرة.

تنشأ الثغرة في tough-cookie (CVE-2023-26136) بسبب استخدام كائن JavaScript عادي {} لتخزين ملفات تعريف الارتباط. نظرًا لأن {} يرث من Object.prototype، يمكن استغلاله عن طريق حقن خصائص مثل proto، مما يؤدي إلى تلوث النموذج الأولي. قد يسمح هذا للمهاجم بالتلاعب بسلوك التطبيق أو التسبب في مشكلات أمنية.

للتخفيف من ذلك، يستبدل التصحيح {} بـ Object.create(null)، مما ينشئ كائنًا بدون نموذج أولي ([[Prototype]]: null). يضمن هذا عدم وراثة الكائن لأي خصائص من Object.prototype، مما يمنع المهاجمين من حقن خصائص خبيثة.

باستخدام Object.create(null)، نقوم فعليًا بعزل مخزن ملفات تعريف الارتباط عن وراثة النموذج الأولي غير المقصودة، مما يجعله أكثر أمانًا ضد هجمات تلوث النموذج الأولي.

دليل التثبيت وتعليمات التصحيح

لتثبيت الإصدار المصحح محليًا، اتبع الخطوات التالية:

  1. استخراج الحزمة المصححة (اختياري للتحقق):

tar -tzf tough-cookie-2.5.0.tgz

إذا لزم الأمر، قم باستخراجها:

tar -xzf tough-cookie-2.5.0.tgz

  1. تثبيت الحزمة المصححة:

npm install ./tough-cookie-2.5.0.tgz

  1. التحقق من الإصلاح: قم بتشغيل سكريبت الاختبار:

node index.js

الإخراج المتوقع:

EXPLOITED SUCCESSFULLY - للإصدار الأصلي

EXPLOIT FAILED - للإصدار المصحح

التوافق مع Node.js

تم اختبار الإصدار المصحح على Node.js 20 (LTS) لضمان التوافق مع أحدث بيئة تشغيل مستقرة.

المستودع والتفرع

مستودع tough-cookie الأصلي (Salesforce) موجود حاليًا في الإصدار 5.1.1. نظرًا لأننا نعمل مع الإصدار 2.5.0، فإن التفرع المباشر من المستودع الرئيسي غير ممكن. بدلاً من ذلك، أنشأنا مستودعًا منفصلاً يحتوي على كل من الإصدارين الأصلي والمصحح. يمكنك العثور عليه هنا:

مستودع GitHub - النسخة المتفرعة

CI/CD

  • لم يتم استخدام أي أدوات CI/CD في هذا البحث.
  • على دراية بـ Docker (مستوى أساسي).

المرجع

لمزيد من التفاصيل، قم بزيارة صفحة CVE الرسمية: CVE-2023-26136 - NVD

تنزيل الأداة