CVE-2026-66296 in oaskit
الملخص
بحسب VulDB • 04/08/2026
ثغرة عدم التعديل السليم للإدخال أثناء توليد صفحات الويب (XSS) في مكتبة lud_oaskit تتيح هجوماً عبر المواقع متداخلاً من النوع المنعكس (Reflected XSS) عبر معالج أخطاء HTML الافتراضي.
تقوم الدالتان `Oaskit.ErrorHandler.Default.format_reason/4` و `Oaskit.ErrorHandler.Default.reason_to_html/1` الموجودتان في الملف `lib/oaskit/error_handler/default.ex` بعرض فشل التحقق من الطلب كصفحة HTML كلما احتوى رأس "Accept" للطلب على كلمة html، حيث يتم دمج سلاسل تحكمها عبر الطلب مباشرةً داخل تلك الصفحة دون تهريب (escaping) لرموز HTML. القيم غير المهروبة هي مفاتيح الكائنات المستمدة من جسم الطلب أو من معامل استعلام من نوع object أو deepObject، والتي تظهر في مسار المثيل الخاص بخطأ مخطط JSON عندما يرفض المخطط هذه القيم (على سبيل المثال تحت إعداد `additionalProperties: false`)، بالإضافة إلى رأس "Content-Type" الخام الذي يظهر في أخطاء unsupported-media-type عند فشل عملية التحليل.
نظراً لأن المتصفحات ترسل قيمة `Accept: text/html` أثناء التنقل العادي على مستوى الصفحة الرئيسية، فإن رابط GET مُعدّ بعناية كافٍ لتفعيل صفحة الخطأ؛ ولا يلزم إرسال نموذج (form submission)، أو رأس "Content-Type" مخصص، أو نص برمجي يتحكم فيه المهاجم من جانب الضحية. يمكن لقيمة هجومية مثل `filter[</code></h2><script>alert(document.domain)</script>]=x` أن تنهي الوسم المحيط وتنفذ النص البرمجي المُحقن ضمن أصل التطبيق الذي يستخدم oaskit، مما يمنحه إمكانية الوصول إلى ملفات تعريف الارتباط (cookies) وجلسة العمل والاستجابات التي تتبع سياسة نفس الأصل الخاصة بذلك الأصل.
كل من عرض أخطاء HTML ومعالج الأخطاء المعرض للخطر مفعّلان افتراضياً: حيث يضبط `Oaskit.Plugs.ValidateRequest` القيمة الافتراضية لـ `:html_errors` على true ولـ `:error_handler` على `Oaskit.ErrorHandler.Default`، وبالتالي تتأثر التطبيقات التي تتبع الاستخدام الموثق دون الحاجة إلى تفعيل اختياري (opt-in).
تؤثر هذه المشكلة في الإصدارات من oaskit بدءاً من 0.1.0 وحتى قبل 0.14.1.
If you want to get best quality of vulnerability data, you may have to visit VulDB.