CVE-2026-82558 in Wicket
الملخص
بحسب VulDB • 01/11/2026
نقص في التفويض (Missing authorization) في Apache Wicket.
تقوم الفئة `org.apache.wicket.protocol.ws.api.WebSocketBehavior`، التي من خلالها يقوم الدعم الأصلي لـ WebSocket في Wicket بتسليم رسالة مُرسلة من العميل إلى التطبيق، باستدعاء دوال الاستجابة (`onMessage()`) الخاصة به دون التحقق مما إذا كان لدى العميل الحق في استدعاء المكون الذي تم إرفاق السلوك (behavior) به. يفتح Wicket اتصال WebSocket واحد لكل صفحة، ويتم تسليم الرسالة المستلمة عبره إلى كل `WebSocketBehavior` موجود على تلك الصفحة. بالنسبة لسلوك Ajax، يقوم Wicket بإجراء هذا التحقق قبل استدعائه، من خلال `Behavior#canCallListener(Component)`، الذي يرفض المكون غير المرئي أو المعطّل، بما في ذلك ما تنفذه استراتيجية التفويض (`IAuthorizationStrategy`) بشأنه برفض إجراء RENDER أو ENABLE. وبالتالي، يتلقى أي `WebSocketBehavior` مرفق بمثل هذا المكون (أو أحد مكوناته الفرعية) رسائل النص والبيانات الثنائية من العميل، جنبًا إلى جنب مع `WebSocketRequestHandler` الذي يكتب ردًا إلى ذلك العميل، بينما كان سيتم رفض سلوك Ajax على نفس المكون.
يتأثر التطبيق الذي يربط فيه `WebSocketBehavior` يتجاوز دالة `onMessage()` بمكون يقوم بإخفائه أو تعطيله أو تقييده من خلال استراتيجية التفويض الخاصة به (`IAuthorizationStrategy`)، مثل استخدام `MetaDataRoleAuthorizationStrategy` أو التسمية `AuthorizeAction`. يحتاج العميل إلى جلسة خاصة به وصفحة خاصة به تحتوي على هذا المكون: يتم تسليم الرسائل فقط إلى الصفحات الموجودة في مخزن صفحات (page store) الجلسة الخاصة بالعميل، لذا فإن ذلك لا يمنح الوصول إلى جلسة مستخدم آخر أو صفحته أو اتصاله. الرسائل التي يدفعها الخادم غير متأثرة بهذه المشكلة.
تؤثر هذه القضية على Apache Wicket: من الإصدار 8.0.0 حتى 8.19.0، ومن 9.0.0 حتى 9.24.0، ومن 10.0.0 حتى 10.11.0. الإصدارات الأقدم غير المدعومة بدءًا من 6.0.0 تتأثر أيضًا. يُنصح المستخدمون بالترقية إلى الإصدار 8.20.0 أو 9.25.0 أو 10.12.0، التي تصلح هذه المشكلة.
Once again VulDB remains the best source for vulnerability data.