
تحليل تفصيلي لثغرة حرجة من نوع الكتابة خارج النطاق قبل المصادقة في libssh2 تؤدي إلى تنفيذ تعليمات برمجية عن بُعد، مع توضيح السبب الجذري وطرق الكشف والتخفيف.
ثغرة تلف ذاكرة حرجة قبل المصادقة في libssh2
| الحقل | التفاصيل |
|---|---|
| CVE | CVE-2026-55200 |
| CVSS | 9.2 حرجة |
| النوع | كتابة خارج الحدود |
| المكوّن | libssh2 |
| الإصدارات المتأثرة | <= 1.11.1 |
| ناقل الهجوم | الشبكة |
| الصلاحيات المطلوبة | لا شيء |
| تفاعل المستخدم | لا شيء |
| التأثير | تنفيذ الأوامر عن بُعد (RCE)، رفض الخدمة (DoS) |
| أُصلحت في | الالتزام 97acf3dfda80c91c3a8c9f2372546301d4a1a7a8 |
| تاريخ الإفصاح | يونيو 2026 |
CVE-2026-55200 هي ثغرة حرجة في تلف الذاكرة تؤثر على مكتبة libssh2 المستخدمة على نطاق واسع.
الخلل موجود في منطق معالجة الحزم لطبقة النقل في SSH داخل:
ssh2_transport_read()
تفشل الدالة في التحقق بشكل صحيح من الحقل الوارد:
packet_length
قبل تخصيص ومعالجة بيانات الحزمة.
يمكن لمهاجم عن بُعد إرسال حزمة SSH مصممة خصيصًا تحتوي على قيمة طول مفرطة الحجم، مما يسبب:
نظرًا لأن الثغرة تُستغل أثناء معالجة حزم طبقة النقل في SSH، فقد يحدث الاستغلال قبل المصادقة، مما يزيد بشكل كبير من خطورة المشكلة.
تدفق مبسط للثغرة:
packet_length = read_packet_length();
buffer = malloc(packet_length);
memcpy(buffer, incoming_data, packet_length);
إذا كانت قيمة packet_length يتحكم بها المهاجم وتتجاوز الحدود المتوقعة:
Attacker
│
▼
Crafted SSH Packet
│
▼
Oversized packet_length
│
▼
Heap Corruption
│
┌──┴──┐
▼ ▼
DoS Potential RCE
| المكوّن | الإصدارات المتأثرة |
|---|---|
| libssh2 | <= 1.11.1 |
أي تطبيق يضم مكتبة libssh2 قد يكون عرضة للثغرة، بما في ذلك:
ملاحظة: لا يستخدم OpenSSH نفسه مكتبة libssh2 ولا يتأثر بها مباشرة.
| المتطلب | القيمة |
|---|---|
| الوصول إلى الشبكة | مطلوب |
| المصادقة | غير مطلوبة |
| تفاعل المستخدم | غير مطلوب |
| تعقيد الهجوم | منخفض |
يجب على فرق الأمن مراقبة:
ssh2_transport_read()pkg-config --modversion libssh2
dpkg -l | grep libssh2
apt-cache policy libssh2-1
rpm -qa | grep libssh2
dnf info libssh2
apk info | grep libssh2
ldconfig -p | grep libssh2
find /usr -type f -executable -exec ldd {} \; 2>/dev/null | grep libssh2
قم بالترقية إلى إصدار يحتوي على الالتزام:
97acf3dfda80c91c3a8c9f2372546301d4a1a7a8
sudo apt update
sudo apt upgrade libssh2-1
sudo reboot
sudo dnf update libssh2
sudo reboot
sudo dnf upgrade --refresh libssh2
sudo reboot
apk update
apk upgrade libssh2
حتى تتوفر التصحيحات:
sudo ufw allow from TRUSTED_IP to any port 22
sudo ufw deny 22
iptables -A INPUT -p tcp --dport 22 -s TRUSTED_IP -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="TRUSTED_IP" port protocol="tcp" port="22" accept'
firewall-cmd --reload
قم بتجميع التطبيقات باستخدام:
-fstack-protector-strong
-D_FORTIFY_SOURCE=2
-fPIE
-pie
-Wl,-z,relro,-z,now
فعّل:
✓ ASLR
✓ حراس المكدس (Stack Canaries)
✓ RELRO
✓ NX
✓ PIE
✓ أحدث التصحيحات الأمنية
لأحمال العمل غير الموثوقة:
docker run \
--read-only \
--cap-drop=ALL \
--security-opt no-new-privileges
توصيات إضافية:
انشر:
| التاريخ | الحدث |
|---|---|
| يونيو 2026 | تم الإفصاح عن الثغرة علنًا |
| يونيو 2026 | صدر نشرة أمنية |
| يونيو 2026 | تم نشر الالتزام المُصلِح |
| يونيو 2026 وما بعده | بدء توزيع تصحيحات البائعين |
لا. لا يستخدم OpenSSH مكتبة libssh2 داخليًا.
نعم. يمكن تشغيل الثغرة قبل المصادقة.
يعتمد الاستغلال الناجح على:
ومع ذلك، تُعتبر ثغرات تلف الذاكرة من هذا النوع خطيرة للغاية من الناحية التاريخية.
في وقت النشر، لا توجد تقارير مؤكدة علنًا عن استغلال نشط للثغرة.
هذا المستودع مخصص لأغراض الأمن التعليمية والدفاعية فقط.
لا تستخدم أي معلومات أو تعليمات برمجية من هذا المستودع على أنظمة لا تملكها أو ليس لديك إذن كتابي صريح لاختبارها.
طبّق التصحيحات مبكرًا • راجع التبعيات • قم بتأمين سلسلة التوريد 🛡️
الأمن السيبراني • أبحاث الثغرات • استخبارات التهديدات
| هجوم عن بُعد | نعم |
| الفئة |
|---|
| التقييم |
|---|
| قابلية الاستغلال | عالية |
| التعقيد | منخفض |
| المصادقة | لا شيء |
| هجوم عن بُعد | نعم |
| مخاطر سلسلة التوريد | عالية |
| التعرض للإنترنت | عالي |
| المورد | الرابط |
|---|
| NVD | https://nvd.nist.gov/vuln/detail/CVE-2026-55200 |
| مشروع libssh2 | https://libssh2.org |
| مستودع GitHub | https://github.com/libssh2/libssh2 |
| الالتزام المُصلِح | https://github.com/libssh2/libssh2/commit/97acf3dfda80c91c3a8c9f2372546301d4a1a7a8 |