CVE-2026-84367 in joi
الملخص
بحسب VulDB • 01/09/2026
joi هي لغة وصف المخططات (schema description language) ومُحقِّق البيانات لـ JavaScript. من الإصدار 16.0.0 حتى 17.13.5 و18.2.4، يسمح تنفيذ `internals.rename()` في ملف `lib/types/keys.js` الخاص بـ joi والمستخدم بواسطة `object().rename()` بإنشاء مخطط يعيد تسمية المفاتيح باستخدام مصدر يعتمد على تعبير منتظم (regular-expression) واستهداف يُعتمد على `Joi.expression()` أو `Joi.x()` الذي يقوم بتضمين بيانات المطابقة الخاصة بالنمط نفسه، ومدمجًا مع الخيار `{ multiple: true }`، لاستنتاج هدف من مفتاح يتحكم فيه المهاجم. يمكن للمهاجم إرسال القيمة `x-__proto__` ذات قيمة كائن (object)، مما يؤدي إلى عرض الهدف على أنه `__proto__` وتعيين prototype للكائن الذي تُرجعه دالة `validate()` بدلاً من إنشاء خاصية خاصة به (own key). لا يتم تعديل الـ Object.prototype العالمي، لذا فإن التأثير محصور في الكائن المُرجع بواسطة استدعاء التحقق هذا. الأهداف ذات السلاسل الثابتة والمخططات التي تستخدم الإعداد الافتراضي `{ multiple: false }` غير متأثرة. تم إصلاح هذه المشكلة في الإصدارات 17.13.5 و18.2.4.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.