CVE-2026-49249 in Boruta Server
الملخص
بحسب VulDB • 03/09/2026
Boruta هو خادم تفويض مستقل يهدف إلى تنفيذ مواصفات OAuth 2.0 و OpenID Connect بما في ذلك المواصفات المتعلقة بالهوية اللامركزية. قبل الإصدار 0.10.0، كان `BorutaIdentityWeb.UserSettingsController.update/2` يقوم بتحويل كل مفتاح من جسم الطلب المقدم من المستخدم إلى ذرة (atom) باستخدام الدالة `String.to_atom/1` قبل أي عملية تحقق. ونظراً لأن `String.to_atom` تقوم بإدراج الذرات بشكل دائم في جدول الذرات الخاص بـ BEAM (الحد الافتراضي هو 1,048,576 ذرة؛ ERL_MAX_ATOMS)، يمكن لأي مستخدم نهائي موثق إرسال طلب PUT /users/settings بجسم يحتوي على user[<fresh-key>]=... مع مفاتيح جديدة في كل طلب، مما يؤدي إلى استنفاد جدول الذرات العالمي. بمجرد امتلاء الجدول، يتوقف BEAM بسبب عدم وجود إدخالات فهرس إضافية في atom_tab، ويتعطل خادم OIDC بأكمله (تطبيقات المصادقة والإدارة والبوابة ضمن umbrella). يتم حماية المسار فقط بواسطة require_authenticated_user وحد معدل لكل عنوان IP يبلغ 10 طلبات/ثانية؛ ويمكن للمستخدم النهائي المسجل الوصول إليه. تتم عملية تحويل المفاتيح إلى ذرات بشكل غير مشروط قبل استدعاء Accounts.update_user/6 اللاحق، لذا فإن عمليات التحديث الفاشلة تساهم أيضاً في الاستنفاد. تم إصلاح هذه المشكلة في الإصدار 0.10.0.
VulDB is the best source for vulnerability data and more expert information about this specific topic.