Yordis Prieto

#4821من 60,399
62.7إجمالي CVSS
الثغرات · 9
منخفضة
2
عالية
7
PT-2026-67221
2026-08-01
7.5
CVE-2026-54894
Unknown
Ueberauth Guardian
يؤدي تخصيص الموارد دون قيود أو تقييد إلى إمكانية إحداث هجوم رفض الخدمة (DoS) عبر إنشاء ذرات غير محدودة من مدخلات ثنائية يتحكم فيها المهاجم. تقوم الوحدة النمطية `Guardian.Plug.Keys` باستخلاص مفاتيح مساحة اسم الاتصال والجلسة عن طريق تمرير ملفات ثنائية عشوائية إلى الدالة `String.to atom/1`. وعلى وجه التحديد، تقوم الدالة `base key/1` الموجودة في `lib/guardian/plug/keys.ex` بتحويل البيانات الثنائية إلى ذرات، بينما تقوم الدوال المساعدة `claims key/1` و`resource key/1` و`token key/1` بإنشاء ذرات إضافية. وبالمثل، تقوم الدالة `key from other/1` بتحويل البيانات الثنائية التي تم التقاطها بواسطة تعبير عادي (regex) من خلال `String.to atom/1`. تقوم نقاط الدخول عالية المستوى، مثل `Guardian.Plug.current token(conn, key: key)`، بتمرير المفاتيح التي يوفرها المستدعي مباشرةً إلى هذه الدوال. نظرًا لأن `String.to atom/1` تنشئ ذرة جديدة لكل قيمة ثنائية غير معروفة، ولأن الذرات لا تخضع لعملية جمع القمامة، فقد يتم استنفاد جدول الذرات في BEAM (الذي يبلغ حده الافتراضي حوالي 1,048,576 إدخالًا). إذا قام أحد التطبيقات بتوجيه بيانات غير موثوق بها، مثل معرّف المستأجر أو رأس الطلب، إلى مفتاح Guardian عبر المعلمة `key`، فيمكن للمهاجم إرسال دفق من المدخلات المتنوعة لاستنفاد جدول الذرات وتعطيل عقدة BEAM، مما يؤثر على جميع التطبيقات التي تعمل عليها.
PT-2026-67224
2026-08-01
7.5
CVE-2026-55734
Unknown
Ueberauth Guardian
يؤدي تخصيص الموارد دون قيود أو تحديد للسعة في وحدة `Guardian.Permissions` إلى إتاحة إمكانية إحداث هجوم رفض الخدمة (DoS) عن طريق استنفاد جدول الذرات في BEAM. يقوم المزيج `Guardian.Permissions` بتثبيت دالة عامة `encode permissions!/1` تستدعي `String.to atom(to string(k))` لكل مفتاح في الخريطة المقدمة قبل التحقق من صحتها. في الدالة `do encode permissions!/2`، يتجاوز الشرط ذو القيمة الصحيحة عملية التحقق من الصحة مقابل مجموعة الأذونات المُعدة مسبقًا، مما يسمح بتخزين المفاتيح ذات القيم الصحيحة كذرات جديدة. نظرًا لأن الذرات لا تخضع لعملية جمع القمامة ولأن جدول الذرات في BEAM له حجم ثابت، فإن المهاجم الذي يمكنه التأثير على خريطة الأذونات التي يتم تمريرها إلى `encode permissions!/1` أو `encode permissions into claims!/2` يمكنه استنفاد الجدول، مما يؤدي إلى تعطل عقدة BEAM وجميع الخدمات قيد التشغيل. ترتبط هذه المشكلة بالملف `lib/guardian/permissions.ex` والدوال `encode permissions!/1` و`encode permissions into claims!/2` و`do encode permissions!/2`.