تم اكتشاف العديد من الثغرات الأمنية في GNU Screen والتي تسمح بالحصول على امتيازات الجذر.

حساسية

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

أحدها (CVE-2025-23395، الثغرة الأكثر خطورة) يسمح للمهاجم بالحصول على امتيازات الجذر على الأنظمة المتأثرة (تؤثر الثغرة الأمنية فقط على الإصدار 5.0.0 من GNU Screen)، بما في ذلك التوزيعات مثل Fedora وArch Linux وNetBSD وغيرها. ومع ذلك، لا تزال الإصدارات الأخرى مثل Debian وUbuntu وRHEL تستخدم فرع 4.x، الذي ليس عرضة لهذا الخلل المعين.

CVE-2025-23395: تصعيد الامتيازات الحرجة

يذكر أن المشكلة تحدث عند تشغيل GNU Screen باستخدام بت الجذر setuid (حالة Arch و NetBSD)، منذويتم تنفيذ وظيفة logfile_reopen() قبل خفض الامتيازات، والذي يسمح للمستخدم بالتلاعب بالسجل لكتابة ملفات عشوائية كجذر. في مزرعة نموذجية، ويقوم المهاجم بحذف ملف السجل الأصلي واستبداله برابط رمزي. إلى ملف النظام. عند إعادة فتح الملف، يكتب Screen الملف باستخدام أذونات الجذر، مما يسمح للمحتوى الضار بالدخول.

تؤثر هذه المشكلة على الشاشة 5.0.0 عند التشغيل باستخدام امتيازات setuid-root. لا تقوم وظيفة logfile_reopen() بإزالة الامتيازات عند التشغيل على المسار الذي يوفره المستخدم. يتيح هذا للمستخدمين غير المتميزين إنشاء ملفات في مواقع عشوائية بملكية الجذر، وملكية المجموعة (الحقيقية) للمستخدم المستدعي، ووضع الملف 0644. سيتم تسجيل جميع البيانات المكتوبة إلى Screen PTY في هذا الملف. يمكن أيضًا استخدام الملفات الموجودة للتسجيل بهذه الطريقة: سيتم إلحاق البيانات بالملف المعني، ولكن وضع الملف والملكية سيظلان دون تغيير.

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

نقاط الضعف الأخرى ذات الصلة

تم إجراء التدقيق بواسطة فريق أمان SUSE Linux، كما حددوا إخفاقات مهمة أخرى:

  • CVE-2025-46802: في جلسات المستخدمين المتعددين، يمكن للمهاجم الحصول على أذونات القراءة والكتابة العالمية على أجهزة TTY مثل /dev/pts/1، مما يؤثر على فرعي 4.x و5.x.
  • CVE-2025-46803: يقوم الفرع 5.0 بتعيين أذونات غير آمنة (0622) على أجهزة PTY، مما يسمح بالكتابة بواسطة أي مستخدم.
  • CVE-2025-46804: يسمح تسرب المعلومات باستنتاج وجود ملفات أو أدلة باستخدام رسائل الخطأ عند تعريف المتغير SCREENDIR.
  • CVE-2025-46805: قد يؤدي حدوث حالة سباق عند إرسال إشارات SIGCONT وSIGHUP إلى رفض الخدمة.

تم أيضًا اكتشاف سوء استخدام strncpy، والذي قد يتسبب في حدوث أعطال عند تنفيذ الأوامر بتنسيق خاص، وهي مشكلة حصرية لفرع 5.0.

نقص الصيانة والدعم من SUSE

لقد أدى اكتشاف هذه الثغرات الأمنية إلى الكشف عن مشاكل أعمق في صيانة GNU Screen. وفقًا لفريق SUSE، لا يفهم القائمون على صيانة المشروع الحاليين قاعدة التعليمات البرمجية بشكل كامل ولا يواجهون مشاكل أمنية، مما أجبرهم على تطوير تصحيحات لبعض العيوب المكتشفة بأنفسهم. تم إرسال التقرير إلى المطورين في 7 فبراير، ولكن لم يكن من الممكن إصلاح مجموعة الثغرات الأمنية بالكامل خلال فترة السماح المتفق عليها والتي تبلغ 90 يومًا.

ماذا تفعل إذا كنت تستخدم GNU Screen؟

مستخدمو الأنظمة التي تتضمن Screen 5.0.0 مع setuid root يجب التحديث فورًا إلى الإصدار 5.0.1 أو العودة مؤقتًا إلى الإصدار 4.x إذا لم تتوفر أي حزم. كإجراء تخفيفي، يمكن أيضًا إزالة بت setuid من الملف القابل للتنفيذ Screen:

sudo chmod u-s /usr/bin/screen

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

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