CVE-2024-45337
إساءة استخدام connection.serverAuthenticate قد تسبب تجاوزًا للترخيص في golang.org/x/crypto
- تم النشر
- 11/12/2024
- محدث
- 18/02/2025
- تخصيص CNA
- Go
- الأدلة المرصودة
- 08/08/2026
CVSS الأساسي
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:Nمنخفض · الثلاثين يومًا القادمة
- المئوية
- 87.5%
- تاريخ الموديل
- 21/09/2026
EPSS هو تقدير إحصائي، وليس يقينًا أو مقياسًا للتأثير. ادمجها مع CVSS وحالة KEV والتعرض وبيئتك.
ملخص
التطبيقات والمكتبات التي تسيء استخدام `connection.serverAuthenticate` (عبر حقل الاستدعاء `ServerConfig.PublicKeyCallback`) قد تكون عرضة لتجاوز التفويض. توثيق `ServerConfig.PublicKeyCallback` ينص على أن "استدعاء هذه الدالة لا يضمن أن المفتاح المقدَّم يُستخدم فعليًا للمصادقة." تحديدًا، بروتوكول SSH يسمح للعملاء بالاستفسار عما إذا كان المفتاح العام مقبولًا قبل إثبات السيطرة على المفتاح الخاص المقابل. قد يتم استدعاء `PublicKeyCallback` مع مفاتيح متعددة، ولا يمكن استخدام الترتيب الذي قُدِّمت به المفاتيح لاستنتاج أي مفتاح نجح العميل في المصادقة به، إن وُجد. بعض التطبيقات التي تخزّن المفتاح (المفاتيح) الممرَّرة إلى `PublicKeyCallback` (أو معلومات مشتقة منها) وتتخذ قرارات ذات صلة بالأمان بناءً عليها بمجرد إنشاء الاتصال، قد تضع افتراضات غير صحيحة. على سبيل المثال، قد يرسل المهاجم المفتاحين العامين A وB، ثم يصادق باستخدام A. سيتم استدعاء `PublicKeyCallback` مرتين فقط، أولًا مع A ثم مع B. قد يتخذ التطبيق الضعيف بعد ذلك قرارات تفويض بناءً على المفتاح B الذي لا يتحكم المهاجم فعليًا في مفتاحه الخاص. نظرًا لأن هذه الواجهة البرمجية تُساء استخدامها على نطاق واسع، وكإجراء تخفيف جزئي، تفرض golang.org/x/[email protected] الخاصية التالية: عند المصادقة بنجاح عبر المفتاح العام، سيكون آخر مفتاح ممرَّر إلى `ServerConfig.PublicKeyCallback` هو المفتاح المستخدم لمصادقة الاتصال. سيتم الآن استدعاء `PublicKeyCallback` عدة مرات بنفس المفتاح، إذا لزم الأمر. لاحظ أن العميل قد لا يزال لا يتحكم في آخر مفتاح ممرَّر إلى `PublicKeyCallback` إذا تمت مصادقة الاتصال بعد ذلك بطريقة مختلفة، مثل `PasswordCallback` أو `KeyboardInteractiveCallback` أو `NoClientAuth`. يجب على المستخدمين استخدام حقل `Extensions` من قيمة الإرجاع `Permissions` من عمليات استدعاء المصادقة المختلفة لتسجيل البيانات المرتبطة بمحاولة المصادقة بدلاً من الإشارة إلى حالة خارجية. بمجرد إنشاء الاتصال، يمكن استرجاع الحالة المقابلة لمحاولة المصادقة الناجحة عبر حقل `ServerConn.Permissions`. لاحظ أن بعض المكتبات الخارجية تسيء استخدام نوع `Permissions` بمشاركته عبر محاولات المصادقة؛ يجب على مستخدمي المكتبات الخارجية الرجوع إلى المشاريع ذات الصلة للحصول على الإرشادات.
المصادر
3الاستخدام المسؤول
استخدم معلومات الثغرات الأمنية فقط على الأنظمة التي تمتلكها أو المرخص لها باختبارها. يرتبط Kitploit ببيانات تعريف البحث العامة ولا يخزن أكواد الاستغلال أو الحمولات الضارة.