
هذا إثبات مفهوم يوضح CVE-2020-8158، وهي ثغرة حرجة من نوع تلوث النموذج الأولي في TypeORM في الإصدارات < 0.2.25.
هذا إثبات للمفهوم يوضح CVE-2020-8158، وهي ثغرة حرجة في تلوّث النموذج الأولي (Prototype Pollution) في إصدارات TypeORM الأقدم من 0.2.25.
يمكن للمهاجمين:
تكمُن الثغرة في طريقة تعامل TypeORM مع إلغاء تسلسل الكائنات (deserialization) عند معالجة نتائج استعلامات قاعدة البيانات. تقوم المكتبة بدمج البيانات التي يتحكم بها المستخدم في الكائنات بشكل غير سليم دون تنقية المفاتيح الملوِّثة للنموذج الأولي مثل __proto__ و و.
constructorprototypeالمشكلة تكمن في عملية ترطيب/إلغاء تسلسل الكيانات (entity hydration/deserialization) حيث يقوم TypeORM بتعيين الخصائص بشكل تكراري من نتائج الاستعلامات الخام إلى كائنات الكيانات دون تحقق مناسب.
vulnerable-app.ts - تطبيق TypeORM الثغري (إصدار < 0.2.25)exploit.ts - استغلال إثبات المفهومpatched-app.ts - النسخة المصححة (إصدار >= 0.2.25)package.json - التبعياتراجع SETUP.md للحصول على تعليمات الإعداد والاستغلال التفصيلية.