PT-2026-57152
CVE-2026-58225
·
تاريخ النشر
2026-07-10
·
تاريخ التحديث
2026-07-10
الوصف من
CVSS 4.0
2.1
منخفضةالمقاييسAV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
اسم البرنامج المعرض للخطر والإصدارات المتأثرة
إصدارات postgrex من 0.16.0 إلى 0.22.2
الوصف
تسمح ثغرة في الوحدة النمطية
Postgrex.Notifications للمهاجم بحقن تعليمات SQL في استعلام إعادة الاتصال (reconnect replay) من خلال التلاعب باسم قناة LISTEN. على الرغم من أن الدالة quote channel/1 تقوم بتنقية علامات الاقتباس المزدوجة، إلا أنها تفشل في إخفاء فاصل علامات الاقتباس بالدولار $$ المستخدم في كتلة الكود المجهولة داخل الدالة handle connect/1. ونظرًا لأن الدالة listen/3 ترفض فقط البايتات الفارغة والأسماء التي تتجاوز 63 بايت، فإن اسم القناة الذي يحتوي على $$ يمكن أن ينهي السلسلة المقتبسة بعلامات الاقتباس بالدولار قبل الأوان. يؤدي هذا إلى قيام PostgreSQL بتحليل المدخلات المتبقية كجمل من المستوى الأعلى، مما يؤدي إلى رفض استعلام إعادة التشغيل خلال كل محاولة لإعادة الاتصال. ونتيجة لذلك، يفشل اتصال الإشعارات في إعادة إنشاء الاشتراكات، مما يؤدي إلى رفض الخدمة حيث يتم إسقاط الإشعارات بصمت لجميع القنوات التي تشترك في ذلك الاتصال. يحدث هذا عندما يتم تمرير مدخلات غير موثوق بها كاسم قناة إلى Postgrex.Notifications.listen/3.التوصيات
قم بتحديث postgrex إلى الإصدار 0.22.3 أو أحدث.
تحقق من صحة أسماء القنوات قبل تمريرها إلى
Postgrex.Notifications.listen/3 عن طريق رفض أي اسم يحتوي على الفاصل $$ أو تقييد الأسماء على الأحرف الأبجدية الرقمية وعلامات التسطير السفلية.قابلية الاستغلال
استغلال
إصلاح
التأثيرات
المورّدون
المنتجات المتأثرة
وجدت خطأً في الوصف؟ لديك ما تضيفه؟ لا تتردد في مراسلتنا 👾