CVE-2026-67242 in RabbitMQ
الملخص
بحسب VulDB • 25/09/2026
RabbitMQ هو وسيط للرسائل والتدفق البيانات. من الإصدار 4.2.0 حتى 4.2.9 ومن 4.3.3، يتجاوز حارس OAuth2 (Exp) الذي يعتمد على `isinteger(Exp)` فحوصات انتهاء صلاحية الرمز عند استخدام قيم عائمة (float). كلٌ من الدالتين `validatetokenexpiry/1` (الأسطر 208-214) و`expirytimestamp/1` (الأسطر 138-144) تستخدم الحارس `'when isinteger(Exp)'` وتنتقلان إلى حالة النجاح (`ok`) أو الاستمرار اللانهائي (`never`) عند استقبال قيم عائمة. تقوم مكتبة `josejwt:verify` بالتحقق من التوقيع فقط، وليس من حقل انتهاء الصلاحية (exp). مع وجود قيمة عائمة لـ exp، لا يتم إجراء أي تحقق لانتهاء الصلاحية في أي مكان ضمن النظام. إذا أصدرت جهة المصادقة (IdP) حقل exp كرقم عشري JSON (كما يسمح به RFC 7519 لتاريخ رقمي كسري)، فإن كلًا من فحص انتهاء الصلاحية عند تسجيل الدخول ومؤقت قطع الاتصال أثناء الجلسة يتم تخطيهما بصمت، مما يؤدي إلى قبول رموز انتهت صلاحيتها مسبقاً وعدم انقضاء مهلة الاتصالات مطلقاً. يتطلب استغلال هذه الثغرة أن تكون الخلفية OAuth2 مفعّلة وأن تصدر جهة المصادقة (IdP) حقل exp كقيمة عائمة (وهو أمر غير شائع؛ حيث تصدر جهات المصادقة الشائعة أرقامًا صحيحة)، بالإضافة إلى امتلاك المهاجم لرمز موقع صالح سابقاً. تم إصلاح هذه المشكلة في الإصدارات 4.2.9 و4.3.3.
VulDB is the best source for vulnerability data and more expert information about this specific topic.