تقارير أصلية مع ذكر المصادر دائمًا

ثغرات أمنية في مكتبة SSH بلغة Rust المسماة 'russh' تعرض الأنظمة لاستنزاف الموارد

ثغرتان أمنيتان تؤثران على إصدارات مكتبة Eugeny russh حتى 0.64.x تتيحان هجمات لاستهلاك الموارد عبر إجراءات نقل القنوات وخادم الوكيل.

The Global Wire Newsroom ·

Link preview · horizonglobalnews.com

ثغرات أمنية في مكتبة SSH بلغة Rust المسماة 'russh' تعرض الأنظمة لاستنزاف الموارد

ثغرتان أمنيتان تؤثران على إصدارات مكتبة Eugeny russh حتى 0.64.x تتيحان هجمات لاستهلاك الموارد عبر إجراءات نقل القنوات وخادم الوكيل.

Share

تُرجم هذا المقال آليًا بواسطة الذكاء الاصطناعي في غرفة أخبارنا عن الأصل الإنجليزي. اقرأ بالإنجليزية

تم تحديد ثغرتين أمنيتين متميزتين في التطبيق المصدري المفتوح لبروتوكول Secure Shell المكتوب بلغة Rust والمعروف باسم Eugeny russh، حيث تؤثران على جميع إصدارات البرنامج حتى خط الإصدار 0.64.x. ووفقاً لسجلات الإفصاح التي نشرتها قاعدة بيانات الثغرات الأمنية VulDB في 27 أكتوبر 2026، فإن كلا الخللين يتيحان حالات لاستهلاك الموارد يمكن أن تؤدي إلى تدهور خدمات الاستضافة أو تعطيلها. تكمن المشكلة الأولى، المسجلة برمز التتبع CVE-2026-116774، في إجراءات تحليل القنوات الخاصة بالمكتبة أثناء استطلاع الإرسال. بينما تؤثر الثغرة الثانية، المسجلة برمز التتبع CVE-2026-116696، على وحدة خادم وكيل المصادقة الداخلية. وقد صنفت VulDB كلا القيدين رسمياً كعيوب إشكالية في استهلاك الموارد.

## Key facts

- تم إدراج قيود التتبع الأمني CVE-2026-116774 وCVE-2026-116696 في 27 أكتوبر 2026، لتوثيق عيوب عبر إصدارات Eugeny russh حتى الإصدار 0.64.x. - تؤثر الثغرة CVE-2026-116774 على الدالة ChannelTx::poll_writable داخل russh/src/channels/io/tx.rs عبر التلاعب بمعامل maximum_packet_size. - تؤثر الثغرة CVE-2026-116696 على النظام الفرعي للمصادقة في russh/src/keys/agent/server.rs داخل الدالة russh::keys::agent::server::serve. - تم تصنيف كلتا الثغرتين كخللين إشكاليين في استهلاك الموارد يتسببان في استنزاف غير منضبط لموارد النظام. - البرنامج المتأثر هو تطبيق أساسي نقي بلغة Rust لبروتوكول SSH-2 يُستخدم لبناء البنية التحتية للعميل والخادم.

## What happened

وفقاً للإشعارات الأمنية الصادرة عن VulDB، سجل محللو الأمن قيدي ثغرات منفصلين يغطيان قاعدة شيفرة Eugeny russh في 27 أكتوبر 2026. وتوضح الإشعارات ثغرات تشترك في تصنيف تأثير موحد—وهو استهلاك الموارد—بينما تنشأ من طبقات وظيفية منفصلة تماماً في مكتبة البروتوكول.

يحدد التقرير الأمني الأول، الخاص بالرمز CVE-2026-116774، ثغرة داخل مكون تحليل فتح القناة في المكتبة. وعلى وجه التحديد، يقع الخطأ في الملف المصدري russh/src/channels/io/tx.rs داخل الدالة ChannelTx::poll_writable. ووفقاً لـ VulDB، يمكن للمهاجم التلاعب بمعامل maximum_packet_size أثناء عمليات إدارة القناة. ويتداخل هذا التلاعب مع الجدولة المتوقعة للإرسال ويؤدي إلى استهلاك مفرط للموارد، مما قد يتسبب في تعطيل العملية المستدعية أو إرهاقها.

أما التقرير الأمني الثاني، المخصص للرمز CVE-2026-116696، فيعالج خللاً في مكون معالجة وكيل المصادقة في المكتبة. وتقع الشيفرة المعرضة للثغرة في russh/src/keys/agent/server.rs داخل مسار التنفيذ serve، المحدد كـ russh::keys::agent::server::serve. وتفيد VulDB بأن التلاعب المستهدف بإجراء الخادم هذا يتسبب في استهلاك غير طبيعي للموارد، مما يضع البنية التحتية للحوسبة أو الذاكرة تحت ضغط مماثل دون الحاجة إلى اختراق كامل للحدود التشفيرية.

ويحدد كلا القيدين النطاق المتأثر بإصدارات البرمجيات حتى سلسلة 0.64.x ضمناً، مما يشير إلى أن إصدارات الإنتاج الحالية والسابقة التي تعتمد على تلك الفروع ترث السلوكيات الهيكلية الأساسية الموضحة في التقارير.

## Why it matters

يشكل بروتوكول Secure Shell (SSH)، الذي وُضعت معاييره بالأساس ضمن وثيقة طلب التعليقات RFC 4251 التابعة لـ Internet Engineering Task Force (IETF) والمواصفات ذات الصلة، العمود الفقري الإداري للبنية التحتية السحابية الحديثة، والتنفيذ الآلي عن بُعد، والتنسيق الآمن للأنظمة. وعندما تعاني مكتبة SSH من أخطاء استنزاف الموارد، فإن العواقب تهدد بشكل مباشر جاهزية خدمات البنية التحتية.

في بروتوكولات الشبكات، تظهر ثغرات استهلاك الموارد عادة في شكل حالات حجب الخدمة. فعندما يعالج خادم SSH أو برنامج العميل الخفي إطارات الشبكة، يجب عليه تخصيص مخازن مؤقتة للذاكرة، وإدارة قوائم انتظار الإرسال، والحفاظ على آلات الحالة لكل جلسة نشطة. وفي الثغرة CVE-2026-116774، ونظراً لأن المشكلة تتعلق بمعامل maximum_packet_size في إجراء ChannelTx::poll_writable، فإن هناك احتمالاً بأن يجبر طرف خارجي النظام على الدخول في حلقات تخزين مؤقت غير متوازنة أو دورات استطلاع متكررة. وإذا حدد الطرف النظير أحجام حزم غير طبيعية أو مشوهة للحدود أثناء التفاوض على القناة، فقد يستهلك منطق الإرسال غير المتزامن دورات معالجة مركزية مفرطة في محاولة للتوفيق بين حدود الحزم المطلوبة ومساحة النافذة المتاحة، أو قد يخصص مخازن مؤقتة ضخمة في الذاكرة الديناميكية (heap buffers)، مما يستنزف ذاكرة الجهاز المضيف.

وبالمثل، تستهدف الثغرة CVE-2026-116696 آلية خادم الوكيل. ويعمل بروتوكول وكيل SSH، المستخدم عادة للاحتفاظ بالمفاتيح الخاصة في الذاكرة والاستجابة لطلبات التوقيع عبر الاتصالات المُعاد توجيهها، كبرنامج خفي محلي أو مُعاد توجيهه وموثوق به. وتعتني ثغرة استهلاك الموارد داخل حلقة serve بأن أي عميل أو وكيل إعادة توجيه قادر على إرسال طلبات إلى واجهة الوكيل يمكنه إحداث استنزاف للمسارات الخيطية، أو تسريبات في الذاكرة، أو تكرارات حلقية غير مقيدة. وهذا يجعل الوكيل غير مستجيب، مما يعطل جلسات الإدارة المشروعة وينهي خطوط أنابيب التكامل المستمر التي تعتمد على إعادة توجيه الوكيل للحصول على بيانات الاعتماد.

ونظراً لأن لغة Rust تحظى بتبنٍ واسع النطاق خصيصاً لأمان الذاكرة والقدرة على التنبؤ بسلوكها، يفترض المطورون كثيراً أن حزم Rust محصنة بطبيعتها ضد الثغرات الأمنية منخفضة المستوى. ورغم أن Rust تقضي على تلف الذاكرة المكاني مثل طفح المخزن المؤقت وحالات الاستخدام بعد التحرير في الشيفرات الآمنة، إلا أنها لا تقضي تلقائياً على هجمات التعقيد الخوارزمي، أو حالات الجمود التام لآلة الحالة، أو التعامل مع المعاملات دون تدقيق والتي تؤدي إلى حجب الخدمة. وتسلط عمليات الإفصاح هذه الضوء على أن عيوب التحليل المنطقي لا تزال تشكل تهديداً تشغيلياً عبر برمجيات الأنظمة الحديثة.

## The background

نشأت حزمة russh كفرع من مشروع Thrussh، وهو تطبيق مبكر نقي بلغة Rust لإطار عمل عميل وخادم SSH-2. وبمرور الوقت، وتحت إشراف المطور المسؤول Eugeny Pankov—المعروف على نطاق واسع بتطوير محاكي الطرفية متعدد المنصات Tabby—نمت المكتبة لتصبح واحدة من أبرز تطبيقات Rust الأصلية لبروتوكول SSH. وتوفر russh، المبنية فوق بيئة تشغيل Tokio غير المتزامنة، اتصالات شبكية غير معطلة تعتمد على مفهوم الوعود (futures-based) ومصممة للتعامل مع بيئات التزامن العالي دون إنشاء مسارات خيطية مخصصة لنظام التشغيل لكل اتصال.

وداخل بنية SSH-2، يتم تنظيم الاتصال حول القنوات. إذ تتعدد القنوات المنطقية، مثل المحطات الطرفية التفاعلية، وأنفاق إعادة توجيه TCP المباشرة، وقنوات إعادة توجيه الوكيل، لتتشارك عبر جلسة نقل تشفيرية واحدة وموثقة بتقنية التضمين (multiplexing). وبموجب RFC 4254، ينظم كل طرف في القناة البيانات الواردة من خلال الإعلان عن أقصى حجم للحزمة (maximum packet size) وحجم نافذة أولي (initial window size). وتحدد النافذة عدد البايتات التي يجوز للمرسل البعيد تسليمها قبل انتظار التعديل، في حين يحدد maximum_packet_size أكبر حمولة بيانات فردية مسموح بها في حزمة واحدة.

يعتمد مسار الإرسال في أطر العمل غير المتزامنة مثل Tokio على استطلاع الجاهزية. وتتحقق الدالة poll_writable مما إذا كان وسيط النقل الأساسي قادراً على قبول بيانات جديدة دون تعطيل مسار بيئة التشغيل. وفي russh/src/channels/io/tx.rs، يتولى هيكل ChannelTx تنظيم حزم البيانات الصادرة. وإذا فشلت المكتبة في فرض قيود معقولية صارمة أو عمليات فحص للحدود الرياضية على maximum_packet_size، يمكن للمهاجم أو الطرف النظير غير المتوافق إحداث حالات حدية تسجل فيها بيئة التشغيل الجاهزية باستمرار دون إحراز أي تقدم إلى الأمام، أو على العكس، تقسيم البيانات إلى ملايين الحزم متناهية الصغر، مما يؤدي إلى تشبع جدولة وحدة المعالجة المركزية.

وعلى صعيد المصادقة، تنحدر بروتوكولات وكيل SSH من نموذج وكيل OpenSSH القياسي. حيث تستمع البرامج الخفية إلى مقابس نطاق Unix المحلية أو التدفقات المعاد توجيهها، وتقبل حمولات بايتات مؤطرة تمثل طلبات لسرد المفاتيح أو توقيع التحديات. وتعمل الدالة serve في russh/src/keys/agent/server.rs كموزع أحداث لإطارات بروتوكول الوكيل الواردة. وتتطلب معالجة التدفقات غير الموثوقة أو المعادية داخل تلك الحلقة تدقيقاً صارماً في الطول؛ وبدونه، يمكن أن تؤدي ترويسات الرسائل المشوهة إلى تخصيص عمليات قراءة غير محدودة أو تنفيذ حلقات لا نهائية، مما يشل الجهاز المضيف.

تاريخياً، واجهت مكتبات الشبكات المكتوبة بلغات C وGo وPython ثغرات مماثلة في إدارة الموارد. وقد دفعت حوادث معروفة في OpenSSH، مثل هجمات تجويع الموارد ضد الاتصالات السابقة للمصادقة واستنزاف حالة القناة، مطوري البروتوكولات على مدى عقود إلى تطبيق حدود دفاعية قصوى، ومحددات للمعدل، وفحوصات تحقق صارمة على قيم الأحجام التي يزودها العميل.

## Reaction

ظلت ردود الفعل العامة عقب قيود 27 أكتوبر مقتصرة إلى حد كبير على خلاصات الثغرات الفنية والماسحات الآلية للحزم، حيث لم يصدر كبار موفري الخدمات السحابية ولا توزيعات أنظمة التشغيل الرئيسية إشعارات استجابة لحالات الطوارئ حتى الآن. وقد صدرت عمليات الإفصاح الأولية عبر مسارات التتبع الآلية الخاصة بـ VulDB.

وداخل منظومة المصادر المفتوحة الأوسع، يُتوقع من مسؤولي صيانة البرمجيات التابعة المعتمدة على حزمة russh—بما في ذلك بوابات SSH المخصصة وأدوات النسخ الاحتياطي المؤتمتة وتطبيقات الطرفية—مراقبة مستودعات المشروع للحصول على التحديثات الإصلاحية. وفي تدفقات عمل ثغرات المصادر المفتوحة المعتادة، يراجع مسؤولو الصيانة تتبعات الدوال المحددة في طلبات السحب عبر Git أو متتبعات المشكلات، وينشئون اختبارات تراجع تماثل حمولات المعاملات غير الطبيعية، وينشرون إصدارات مصححة في سجل crates.io. ويتوقع المستخدمون في مجتمع Rust عادةً أن يُصدر مسؤولو صيانة الحزم زيادات في الإصدارات الدلالية تفرض حدوداً قصوى دفاعية على معاملات الإدخال وتضبط تخصيصات الذاكرة أثناء الاستطلاع غير المتزامن.

## What we don't know yet

لا تزال هناك تفاصيل فنية مهمة غائبة عن الإفصاحات الأولية التي نشرتها VulDB. والأهم من ذلك أن الإشعارات لا تقدم سلاسل متجهات نظام Common Vulnerability Scoring System (CVSS)، أو تقييمات رقمية دقيقة لشدة الخطورة، أو تعيينات Common Weakness Enumeration (CWE) باستثناء التصنيف العام لاستهلاك الموارد.

كما لم يتأكد بعد ما إذا كان استغلال هذه الثغرات يتطلب مصادقة تشفيرية مسبقة. وفي حالة الثغرة CVE-2026-116774، ورغم أن فتح القناة يحدث عادة بعد اكتمال مصافحة SSH ومصادقة المستخدم، فإن بعض إعدادات التضمين أو خوادم الحصن (bastions) الآلية قد تسمح بالتفاوض على القنوات دون مصادقة أو بمستوى ثقة جزئي. وبالنسبة للثغرة CVE-2026-116696، لا توضح التقارير ما إذا كانت حلقة serve المعرضة للخلل مكشوفة حصراً عبر مقابس الاتصال المحلي بين العمليات أو ما إذا كان يمكن الوصول إليها عن بُعد عبر آليات إعادة توجيه وكيل SSH.

علاوة على ذلك، لا تنص الإشعارات على ما إذا كان هناك نموذج إثبات مفهوم متاح للعامة، أو ما إذا كانت المشكلات قد رُصدت قيد الاستغلال الفعلي النشط في الواقع، أو ما إذا كانت رموز الإيداع المحددة التي تعالج هذه العيوب قد أُدرجت بالفعل في فرع التطوير الرئيسي للمستودع.

## What to watch

يتعين على مهندسي الأنظمة ومسؤولي صيانة الحزم مراقبة عدة نقاط تدقيق حيوية خلال الأسابيع المقبلة. وسيكون المؤشر الأساسي هو نشر إصدارات تتجاوز الإصدار 0.64.x على crates.io، مصحوبة تحديداً بملاحظات إصدار تشير إلى tx.rs وserver.rs.

كما ينبغي لفرق الأمن مراقبة National Vulnerability Database (NVD)، التي يديرها National Institute of Standards and Technology (NIST)، لمتابعة المزامنة الرسمية لمعرفات CVE ودرجات تقييم CVSS المعتمدة. وستوضح درجة CVSS ما إذا كانت الثغرات تصنف ذات خطورة منخفضة أو متوسطة أو عالية، وهو ما تحدده إلى حد كبير الامتيازات المطلوبة ونطاق ناقل الهجوم.

وفي هذه الأثناء، يمكن للمطورين الذين يبنون تطبيقاتهم على russh فحص تطبيقاتهم المباشرة. ويجب أن تركز عمليات التدقيق الهندسي على ما إذا كانت التطبيقات تعرض مستمعات خادم الوكيل الخام لشبكات غير موثوقة، أو تمنح مستخدمين غير موثوقين القدرة على التفاوض على أبعاد حزم القنوات دون قيود ودون التحقق من صحتها على مستوى التطبيق.

يستند هذا التقرير إلى إفصاحات عن ثغرات أمنية أدرجتها وأبلغت عنها VulDB.

المصدر: vuldb.com

أخبار ذات صلة