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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
tough-cookie-2.5.0-cve-2023-26136-fix — تصحيح أمني لـ CVE-2023-26136 في tough-cookie 2.5.0 - إصلاح ثغرة تلوث النموذج الأولي مع التوافق مع الإصدارات السابقة | Kitploit
أدوات/GitHubGitHub/uriyahav/tough-cookie-2.5.0-cve-2023-26136-fix
التحليل الثابتتحليل الثغرات الأمنيةتحليل الكودأمن الويبالأوراق والأبحاثالتعلم والتعليم
GitHuburiyahav/tough-cookie-2.5.0-cve-2023-26136-fix

tough-cookie-2.5.0-cve-2023-26136-fix

تصحيح أمني لـ CVE-2023-26136 في tough-cookie 2.5.0 - إصلاح ثغرة تلوث النموذج الأولي مع التوافق مع الإصدارات السابقة

الأكثر شعبية

عرض الكل →

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

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

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

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

إصلاح CVE-2023-26136 لـ tough-cookie 2.5.0

نظرة عامة على المهمة

يعالج هذا المشروع CVE-2023-26136، وهي ثغرة حرجة لتلوث النموذج الأولي (prototype pollution) في إصدارات tough-cookie قبل 4.1.3. تؤثر الثغرة على تطبيق الويب الخاص بشركة Penguin Software Inc.، الذي يستخدم [email protected] لمعالجة ملفات تعريف الارتباط.

وصف الثغرة

CVE-2023-26136 هي ثغرة تلوث النموذج الأولي (prototype pollution) تحدث عند استخدام CookieJar مع rejectPublicSuffixes=false. تنشأ المشكلة من تهيئة غير صحيحة للكائنات في فئة MemoryCookieStore، مما يسمح للمهاجمين بحقن خصائص في Object.prototype عبر نطاقات ملفات تعريف ارتباط مصممة بشكل خبيث.

التفاصيل الفنية

توجد الثغرة في lib/memstore.js حيث يتم تخزين ملفات تعريف الارتباط باستخدام كائنات JavaScript عادية ({}). وبما أن هذه الكائنات ترث من Object.prototype، يمكن للمهاجمين استغلال ذلك عن طريق تعيين ملفات تعريف ارتباط بنطاقات مثل __proto__ أو constructor أو prototype، مما يؤدي إلى تلوث النموذج الأولي.

الحل

تنفيذ التصحيح

يستبدل الإصلاح جميع حالات {} بـ Object.create(null) في فئة MemoryCookieStore:

root@kitploit:~
// Before (vulnerable)
this.idx = {};

// After (fixed)
this.idx = Object.create(null);

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

الملفات المعدلة

  • lib/memstore.js: تم تحديث تهيئة الكائنات لاستخدام Object.create(null)

هيكل المشروع

root@kitploit:~
├── README.md                    # This file
├── changes.diff                 # Git-compatible diff file
├── test-cve-2023-26136.js      # Unit test for the fix
├── tough-cookie/
│   ├── index.js                 # Exploit demonstration
│   ├── Original v2.5.0/         # Original vulnerable version
│   ├── v2.5.0-PATCHED/          # Patched version
│   │   └── tough-cookie-2.5.0.tgz  # Packed version
│   └── package.json
└── mission.txt                  # Original mission requirements

التثبيت والاختبار

1. الإصدار المضغوط (.tgz)

الإصدار المُصحح متاح كـ tough-cookie/v2.5.0-PATCHED/tough-cookie-2.5.0.tgz.

للتثبيت:

root@kitploit:~
npm install ./tough-cookie/v2.5.0-PATCHED/tough-cookie-2.5.0.tgz

2. تنفيذ مجموعة الاختبارات

يجب أن تجتاز مجموعة اختبارات tough-cookie الأصلية. لتشغيل الاختبارات:

root@kitploit:~
cd tough-cookie/v2.5.0-PATCHED
npm install
npm test

ملاحظة: لا يتضمن tough-cookie 2.5.0 الأصلي دليل اختبارات في هذا التوزيع، لكن الإصدار المُصحح يحافظ على توافق كامل مع واجهة برمجة التطبيقات الأصلية.

3. اختبار الوحدة لإصلاح الثغرة

قم بتشغيل اختبار الوحدة المخصص للتحقق من الإصلاح:

root@kitploit:~
node test-cve-2023-26136.js

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

root@kitploit:~
Testing CVE-2023-26136 fix...
✅ CVE-2023-26136 fix verified: No prototype pollution detected
✅ Test passed: The vulnerability has been successfully patched

4. عرض توضيحي للاستغلال

يتضمن المشروع عرضًا توضيحيًا للاستغلال في tough-cookie/index.js:

root@kitploit:~
cd tough-cookie
node index.js

سيختبر هذا كلًا من الإصدار الأصلي الضعيف والإصدار المُصحح، موضحًا:

  • EXPLOITED SUCCESSFULLY للإصدار الأصلي
  • EXPLOIT FAILED للإصدار المُصحح

توثيق التغييرات

changes.diff

يحتوي ملف changes.diff على ملف فرق (diff) متوافق مع git يمكن تطبيقه باستخدام:

root@kitploit:~
git apply changes.diff

يتضمن هذا الفرق فقط التغييرات اللازمة لإصلاح الثغرة دون أي تعديلات غير مقصودة.

تفاصيل الاستغلال

يعمل الاستغلال عبر:

  1. إنشاء CookieJar مع rejectPublicSuffixes: false
  2. تعيين ملف تعريف ارتباط خبيث بالنطاق __proto__
  3. يؤدي ذلك إلى تلوث سلسلة Object.prototype
  4. ترث الكائنات الجديدة الخصائص الملوثة

الأضرار المحتملة:

  • التلاعب بسلوك التطبيق
  • تجاوز الأمان
  • حجب الخدمة
  • إتلاف البيانات

توافق Node.js

✅ تم اختباره والتحقق منه على Node.js 20 (LTS)

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

مستودع GitHub: مستودع tough-cookie المُفترَع

وسم Git: v2.5.0-patched-cve-2023-26136-fix

خبرة CI/CD

أدوات التكامل المستمر المستخدمة:

  1. GitHub Actions - مستوى خبير

    • الاختبار الآلي والنشر
    • فحص الأمان وإدارة التبعيات
    • الاختبار عبر منصات متعددة
  2. Jenkins - مستوى متقدم

    • تطوير خطوط الأنابيب وصيانتها
    • تحويل التطبيقات إلى حاويات Docker
    • التكامل مع أدوات متنوعة
  3. Travis CI - مستوى متوسط

    • أتمتة البناء
    • تنفيذ الاختبارات
    • سير عمل النشر
  4. CircleCI - مستوى متوسط

    • إعداد خطوط أنابيب CI/CD
    • دعم Docker
    • تنفيذ المهام بالتوازي
  5. GitLab CI/CD - مستوى متقدم

    • تطوير خطوط الأنابيب
    • النشر على Kubernetes
    • دمج فحص الأمان

أدوات إضافية:

  • Docker - مستوى خبير (الحاويات والتنسيق)
  • Kubernetes - مستوى متقدم (النشر والتوسع)
  • SonarQube - مستوى متوسط (تحليل جودة الكود)
  • Snyk - مستوى متوسط (فحص الثغرات الأمنية)

المراجع

  • CVE-2023-26136 - NVD
  • مستودع tough-cookie على GitHub
  • دليل أمان تلوث النموذج الأولي

الترخيص

يحافظ هذا المشروع على ترخيص tough-cookie الأصلي (BSD-3-Clause) مع إضافة الإصلاح الأمني.


ملاحظة: هذا تصحيح يركز على الأمان يحافظ على التوافق الكامل مع الإصدارات السابقة مع القضاء على ثغرة CVE-2023-26136.

تنزيل الأداة