مؤخرا اندلعت الأخبار ذلك تم العثور على ثغرة أمنية في محاكي xterm الطرفية (تم فهرستها بالفعل ضمن CVE-2022-45063) ، المشكلة يسمح بتنفيذ أوامر shell عندما تتم معالجة تسلسلات هروب معينة في الجهاز.
حول المشكلة ذكر ذلك إنه ناتج عن خطأ في معالجة كود الهروب 50 والذي يستخدم لتعيين أو الحصول على خيارات الخط. في حالة عدم وجود الخط المطلوب ، تُرجع العملية اسم الخط المحدد في الطلب.
تكمن المشكلة في تسلسل OSC 50 ، وهو التكوين والاستشارة نافورة. في حالة عدم وجود مصدر معين ، لا يتم تعيينه ، ولكن يتم تعيين استعلام سيعيد الاسم الذي تم تعيينه. لا يمكن أن تكون أحرف التحكم مضمن ، ولكن يمكن إنهاء سلسلة الاستجابة بـ ^ G. شرق يعطينا أساسًا بدائية لإعادة النص إلى المحطة وتنتهي بـ ^ G.
لا يمكن إدراج أحرف التحكم مباشرة باسم، ولكن يمكن إنهاء السلسلة التي تم إرجاعها بالتسلسل "^ G" ، والتي في zsh ، عندما يكون وضع تحرير سطر نمط vi نشطًا ، يؤدي إلى إجراء عملية توسيع قائمة ، والتي يمكن استخدامها لتنفيذ الأوامر دون الضغط صراحة على مفتاح الإدخال.
للهجوم في أبسط الحالات ، يكفي عرض محتوى ملف مصمم خصيصًا على الشاشة ، على سبيل المثال ، باستخدام الأداة المساعدة cat ، أو لصق خط من الحافظة.
يقوم Debian و Red Hat وغيرهما بتعطيل عمليات الخطوط افتراضيًا ، ولكن يمكن للمستخدمين إعادة تمكينها من خلال خيار أو قائمة التكوين. أيضا ، xterm المنبع يفعل لا يقوم بتعطيلها افتراضيًا ، لذلك تتضمن بعض التوزيعات ملف التكوين الافتراضي الضعيف.
لاستغلال الثغرة الأمنية بنجاح ، يجب على المستخدم استخدام Zsh shell مع تبديل محرر سطر الأوامر (vi-cmd-mode) إلى الوضع "vi"، والذي لا يتم استخدامه بشكل افتراضي في التوزيعات.
نحتاج في الأساس إلى:
zsh
وضع تحرير الخط النشط في نمط vi
نسخ نص حصان طروادة إلى الحافظة
لصقه في zshيمكن القيام بذلك تلقائيًا ، حيث تقوم العديد من المواقع بتعديل النص عند نسخه إلى الحافظة. لذلك أستخدم فقط مخزن التحديد ، والذي لا يمكن الوصول إليه بواسطة المتصفحات. فقط في gtk3 وفي ff على وجه الخصوص ، ينكسران باستمرار لسبب ما ، إنه أمر مرهق.
لا تظهر المشكلة أيضًا عند تعيين xterm على allowWindowOps = false أو allowFontOps = false. على سبيل المثال ، التكوين allowFontOps = خطأ تم ضبطه على OpenBSD و Debian و RHEL ، لكن لا يتم فرضه افتراضيًا على Arch Linux.
بناءً على التغيير والبيان الصادر عن الباحث الذي حدد المشكلة ، الثغرة الأمنية ثابتة في إصدار xterm 375 ، ولكن وفقًا لمصادر أخرى ، تستمر الثغرة الأمنية في الظهور في xterm 375 من Arch Linux.
هذا يعني أنه لاستغلال هذه الثغرة الأمنية ، يجب أن يكون المستخدم كذلك
باستخدام Zsh في وضع تحرير سطر vi (عادةً عبر محرر $ الذي يحتوي على "vi" في
انها). في حين أن هذا غامض إلى حد ما ، إلا أن هذا لم يُسمع به تمامًا.
التكوين.في هذا التكوين ، شيء مثل:
printf "\ e] 50؛ i \ $ (touch / tmp / hack-like-its-1999) \ a \ e] 50؛؟ \ a"> cve-2022-45063
cat cve-2022-45063 # أو طريقة أخرى لإيصال هذا إلى الضحية
أخيرًا ، كما هو الحال دائمًا ، يُنصح مستخدمو الأنظمة المتأثرة بتحديث أنظمتهم ، نظرًا لأنهم سيعرفون متى تكون الثغرات الأمنية معروفة ، يجب على المطورين إصلاح هذه العيوب ، لأنه يتم الكشف عن الكثير من كيفية استغلال هذه العيوب.
ومن الجدير بالذكر أن لا يُسمح بعمليات الخطوط في الإعدادات الافتراضية لـ xterm من بعض توزيعات Linux ، لذلك ليست كل التوزيعات عرضة لهذا الخطأ. للراغبين في متابعة نشر التصحيحات عن طريق التوزيعات ، يمكنهم القيام بذلك على هذه الصفحات: ديبيان, RHEL, فيدورا, SUSE, أوبونتو, قوس لينكس, اكبر برهان, فري y نت بي.
إذا كنت مهتم بمعرفة المزيد عنها، يمكنك التحقق من التفاصيل في الرابط التالي.