Jonatan Männchen

#719من 60,391
305.2إجمالي CVSS
الثغرات · 45
منخفضة
8
متوسطة
11
عالية
23
حرجة
3
PT-2026-56202
2026-07-07
7.5
CVE-2026-56812
Phoenix
Phoenix
يحتوي عميل Presence JavaScript في phoenix على فحص غير سليم للحالات غير العادية، مما يسمح لمهاجم يتمتع بوصول عادي إلى القناة بالتسبب في رفض خدمة مستمر من جانب العميل لجميع مشاهدي موضوع قناة التواجد. تكمن المشكلة في ملف `assets/js/phoenix/presence.js` داخل روتينات `Presence.syncState()` و`Presence.syncDiff()`. يستخدم العميل اختبار «الصحة» البسيط (`state[key]`) بدلاً من فحص وجود خاصية خاصة للتحقق من وجود حالة التواجد. ونظرًا لأن مفاتيح التواجد تخضع لسيطرة المهاجم، يمكن للمستخدم تقديم مفتاح يطابق اسم عنصر في `Object.prototype` (مثل ` proto ` أو `constructor` أو `toString` أو `hasOwnProperty`). يؤدي هذا إلى إرجاع البحث `Object.prototype` المدمج بدلاً من `undefined`، مما يدفع الكود إلى محاولة قراءة `.metas.map(...)` من النموذج الأولي، الأمر الذي يطلق استثناء `TypeError` لم يتم التقاطه. يمنع هذا الاستثناء تحديث الحالة المحلية ويوقف تشغيل `onSync()`. ونظرًا لأن الخادم يستمر في دفع المفتاح الخبيث، تظل المزامنة معطلة لجميع مشاهدي الموضوع حتى يغادر المهاجم. وهذا يمثل خلطًا في وقت القراءة لكائن النموذج الأولي وليس تلوثًا للنموذج الأولي.