ثغرة أمنية في Xterm تؤدي إلى تنفيذ التعليمات البرمجية عند معالجة خطوط معينة

تم التعرف على ثغرة أمنية (CVE-2022-45063) في محاكي محطة xterm، والتي تسمح بتنفيذ أوامر shell عند معالجة تسلسلات هروب معينة في المحطة. بالنسبة للهجوم في أبسط الحالات، يكفي عرض محتويات ملف مصمم خصيصًا، على سبيل المثال، باستخدام الأداة المساعدة cat، أو لصق سطر من الحافظة. printf "\e]50;i\$(touch /tmp/hack-like-its-1999)\a\e]50;?\a" > cve-2022-45063 cat cve-2022-45063

سبب المشكلة هو وجود خطأ في معالجة تسلسل الهروب للتعليمات البرمجية 50 المستخدم لتعيين خيارات الخط أو استردادها. في حالة عدم وجود الخط المطلوب، تقوم العملية بإرجاع اسم الخط المحدد في الطلب. لا يمكنك إدراج أحرف تحكم مباشرة في الاسم، ولكن يمكن إنهاء السلسلة التي تم إرجاعها بالتسلسل "^G"، والذي في zsh، عندما يكون وضع تحرير السطر بنمط vi نشطًا، يؤدي إلى تنفيذ عملية توسيع القائمة، والتي يمكن يمكن استخدامها لتشغيل الأوامر دون الضغط بشكل صريح على مفتاح Enter.

لاستغلال الثغرة الأمنية بنجاح، يجب على المستخدم استخدام واجهة أوامر Zsh مع تعيين محرر سطر الأوامر (وضع vi-cmd) على الوضع "vi"، والذي لا يُستخدم عادةً بشكل افتراضي في التوزيعات. لا تظهر المشكلة أيضًا عند تعيين إعدادات xtermallowWindowOps=false أوallowFontOps=false. على سبيل المثال، يتم تعيينallowFontOps=false في OpenBSD وDebian وRHEL، ولكن لا يتم تطبيقه افتراضيًا في Arch Linux.

وبالنظر إلى قائمة التغييرات وتصريح الباحث الذي حدد المشكلة، فقد تم إصلاح الثغرة في إصدار xterm 375، لكن وفقًا لمصادر أخرى، تستمر الثغرة في الظهور في xterm 375 من Arch Linux. يمكنك تتبع نشر الإصلاحات حسب التوزيعات على هذه الصفحات: Debian، RHEL، Fedora، SUSE، Ubuntu، Arch Linux، OpenBSD، FreeBSD، NetBSD.

المصدر: opennet.ru

إضافة تعليق