PT-2026-121827
CVE-2026-105963
·
تاريخ النشر
2026-10-23
·
تاريخ التحديث
2026-10-23
الوصف من
CVSS 4.0
5.1
متوسطةالمقاييسAV:N/AC:L/AT:N/PR:H/UI:N/VC:L/VI:N/VA:N/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
اسم البرنامج المصاب والإصدارات المتأثرة
plug الإصدارات من 1.6.3 إلى 1.6.9
plug crypto الإصدارات من 1.0.0 إلى 2.2.0
Description
يمكن لمهاجم عن بُعد غير مصرح له الكشف عن قاعدة المفتاح السري أو أسرار حساسة أخرى من خلال سجلات التطبيق عن طريق تقديم وسائط ذات أنواع خاطئة. يحدث هذا لأن الوظائف العامة في
Plug.Crypto تستخدم حراس رأس الوظيفة (function-head guards) للتحقق من صحة الوسائط. عندما يفشل الحارس، تطلق آلة Erlang VM خطأ FunctionClauseError يتضمن قيم الوسائط الفعلية في إطار المكدس العلوي. وبما أن كتل rescue الخاصة بالمكتبة ووظيفة Plug.Crypto.prune args from stacktrace/1 تتعامل فقط مع الاستثناءات التي يتم إثارتها داخل جسم الوظيفة، فإنها لا تلتقط فشل الحارس. وبناءً على ذلك، يقوم Plug.Cowboy و Bandit بكتابة هذا الإطار في سجل الأخطاء وإرفاقه كبيانات وصفية لـ crash reason والتي قد يتم توجيهها إلى أدوات تتبع الأخطاء.هناك نقطتا دخول رئيسيتان متأثرتان:
- تقوم
Plug.Crypto.verify/4بالكشف عن قاعدة المفتاح السري عندما لا يكون الرمز (token) ثنائيًا ولا فارغًا (nil). - تقوم
Plug.Crypto.secure compare/2بالكشف عن السر الموجود في جانب الخادم عندما لا يكون أحد المعاملات ثنائيًا، كما يحدث عندما يؤدي رأس طلب مفقود إلى قيمة فارغة (nil).
يتطلب الوصول إلى المعلومات المسربة وصولاً منفصلاً إلى سجلات التطبيق أو أداة تتبع الأخطاء.
Recommendations
تحديث plug إلى الإصدار 1.7.0 أو أحدث.
تحديث plug crypto إلى الإصدار 2.2.1 أو أحدث.
كإجراء مؤقت، تحقق من أن الوسائط هي قيم ثنائية (binaries) قبل تمريرها إلى
Phoenix.Token.verify/4 أو Phoenix.Token.decrypt/4 أو Plug.Crypto.verify/4 أو Plug.Crypto.decrypt/4 أو Plug.Crypto.secure compare/2.
قم بتكوين أدوات تتبع الأخطاء لإسقاط وسائط إطار المكدس لمنع إرسال الأسرار في تقارير الانهيار. وجدت خطأً في الوصف؟ لديك ما تضيفه؟ لا تتردد في مراسلتنا 👾