يعمل OpenSSH 9.9p2 على إصلاح ثغرتين خطيرتين في MITM

يوفر OpenSSH مجموعة غنية من إمكانيات الأنفاق الآمنة

قبل بضعة أيام، داميان ميلر (أحد مطوري OpenSSH)، كشف النقابمن خلال قوائم البريد الإلكتروني، إصدار صيانة OpenSSH 9.9p2 أن إصلاح ثغرتين خطيرتين تم اكتشاف ثغرة أمنية خطيرة بواسطة Qualys، والتي يمكن استغلالها لتنفيذ هجمات Man-in-the-Middle (MITM).

ويذكر أن هذه العيوب سمح للمهاجم باعتراض اتصالات SSH وخداع العميل لقبول مفتاح خادم ضار بدلاً من المفتاح الشرعي لخادم الهدف.

CVE-2025-26465: تجاوز التحقق من مفتاح SSH

أولى الثغرات الأمنية التي تم إصلاحها في إصدار هذه النسخة التصحيحية هي CVE-2025-26465. هذه الثغرة الأمنية ناجمة عن خطأ منطقي في أداة ssh، الذي يسمح للمهاجم بتجاوز التحقق من مفتاح الخادم وتنفيذ هجوم MITM بنجاح.

عندما يحاول العميل الاتصال إلى خادم SSH، يمكن للمهاجم إعادة توجيه حركة المرور إلى خادم وهمي وتتسبب في قبول العميل للمفتاح غير الصحيح دون سابق إنذار، معتقدًا أنه متصل بالخادم الشرعي.

بالإضافة إلى ذلك، هذه الثغرة الأمنية:

  • لقد كان موجودًا في OpenSSH منذ الإصدار 6.8p1 (ديسمبر 2014).
  • يتم تشغيله عند تمكين خيار VerifyHostKeyDNS.
  • في تكوين OpenSSH الأساسي، تم تعطيل هذا الخيار بشكل افتراضي، ولكن في FreeBSD تم تمكينه حتى مارس 2023.

أما بالنسبة للأسباب التي تسبب هذا الفشل، ويذكر أن يرجع هذا إلى أن دالة verify_host_key_callback() تستدعي verify_host_key()، ولكنه يتحقق فقط إذا كان رمز الخطأ المُرجع هو -1، ويتجاهل رموز الخطأ الأخرى مثل -2. متى ترجع verify_host_key() -2 عندما لا تكون هناك ذاكرة كافيةولكن بسبب حذف رمز الخطأ، يفترض النظام عن طريق الخطأ أن مفتاح المضيف قد تم التحقق منه بشكل صحيح.

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

CVE-2025-26466: تسرب الذاكرة والاستهلاك المفرط لوحدة المعالجة المركزية في SSH

الثغرة الثانية التي تم تصحيحها هي CVE-2025-26466 وهذه الثغرة يؤثر على كل من عميل ssh وخادم sshd، كما يسمح باستنفاد الذاكرة من العملية وتوليد تحميل وحدة المعالجة المركزية عالية عن طريق إرسال حزم SSH2_MSG_PING بشكل متكرر.

إن التأثير الكبير لهذه الثغرة يكمن في حقيقة أن يمكن استغلاله بدون مصادقة ويؤثر على OpenSSH منذ الإصدار 9.5p1 (أغسطس 2023). بالإضافة إلى ذلك، فإنه يسمح للمهاجم باستهلاك موارد النظام، مما يؤدي إلى تدهور الأداء وحتى التسبب في رفض الخدمة (DoS).

أما عن الأسباب التي تؤدي إلى هذا الفشل فيذكر أنها تعود إلى: يتسبب كل حزمة SSH2_MSG_PING واردة مكونة من 16 بايت في تخصيص مخزن مؤقت بحجم 256 بايت في الذاكرة. لا يتم تحرير هذا المخزن المؤقت إلا بعد اكتمال اتفاقية المفتاح، مما يؤدي إلى تسرب الذاكرة عند إرسال حزم PING متعددة.

التخفيف والحل

كحل مؤقت، من المستحسن وضع القيود في sshd_config باستخدام التوجيهات التالية:

  • تسجيل الدخولGraceTime: يؤدي هذا إلى تحديد مهلة زمنية للمصادقة.
  • ماكس ستارت أبس: يقوم بتقييد عدد الاتصالات غير المصادق عليها.
  • عقوبات PerSource: يطبق عقوبات على العملاء الذين يقومون بإنشاء محاولات اتصال متعددة.

وأما حلول، الأول والأكثر موصى به هو ترقية OpenSSH إلى الإصدار الصادر، "9.9p2" في أقرب وقت ممكن لتصحيح هذه الثغرات. ولكن إذا لم يكن التحديث الفوري ممكناً، فيجب تطبيق التدابير التخفيفية المذكورة أعلاه. بالإضافة إلى ذلك، يوصى بتعطيل VerifyHostKeyDNS ما لم يتم استخدام آليات التحقق من DNSSEC الموثوقة.

إذا كنت مهتم بمعرفة المزيد عنها ، يمكنك التحقق من التفاصيل في الرابط التالي.

كيفية تثبيت OpenSSH على نظام Linux؟

بالنسبة لأولئك المهتمين بالقدرة على تثبيت هذا الإصدار الجديد من OpenSSH على أنظمتهم ، في الوقت الحالي يمكنهم فعل ذلك تنزيل الكود المصدري لهذا و إجراء التجميع على أجهزة الكمبيوتر الخاصة بهم.

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

تم التنزيل ، سنقوم الآن بفك ضغط الحزمة باستخدام الأمر التالي:

tar -xvf openssh-9.9p2.tar.gz

ندخل إلى الدليل الذي تم إنشاؤه:

سي دي openssh-9.9p2

Y يمكننا تجميعها الأوامر التالية:

./configure --prefix = / opt --sysconfdir = / etc / ssh اجعل التثبيت