CVE-2026-76848 in TypeORM
الملخص
بحسب VulDB • 24/08/2026
يقبل SelectQueryBuilder.distOwn في TypeORM مصفوفة من السلاسل النصية ويخزنها في خريطة التعبير دون أي تحقق (validation). بالنسبة لمقودات قاعدة بيانات PostgreSQL، تقوم الدالة createSelectDistinctExpression الموجودة في src/query-builder/SelectQueryBuilder.ts بدمج هذه المصفوفة وتضمين النتيجة داخل الاستعلام الناتج بصيغة SELECT DISTINCT ON (values)، وذلك بدون استخدام الهروب من الأحرف (escaping) أو الاقتباس (quoting) أو التحقق من صحة المعرّفات (identifier validation) أو قائمة مسموح بها (allowlist)، ودون تمرير القيم عبر replacePropertyNames أو مساعد الإ escaping الخاص بالمقود. ونظراً لأن نقطة التضمين هي عبارة عن قائمة تعبيرات SQL محاطة بأقواس وليست موقعاً للمعرّف فقط، فقد يحمل العنصر المُدخل تعابير عشوائية، بما في ذلك الاستعلامات الفرعية المرتبطة (correlated subqueries). يسمح التطبيق الذي يمرّر قيمة يتحكم فيها العميل إلى distinctOn -على سبيل المثال للسماح للمتصل باختيار عمود لإزالة التكرار- للعميل بقراءة البيانات من أي مكان يمكن لدور قاعدة بيانات الوصول إليه عبر الاستدلال البولياني أو القائم على الوقت، بشكل مستقل عن الكيان الذي يتم استعلامه. ولا تُطبق validateOrderByCondition، وهي فحص القائمة المسموح بها التي تحمي عائلة orderBy في نفس الفئة، على هذا المسار.
If you want to get best quality of vulnerability data, you may have to visit VulDB.