ثغرة أمنية في 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" (vi-cmd-mode)، والذي لا يتم استخدامه عادةً بشكل افتراضي في التوزيعات. كما أن المشكلة لا تحدث عند تعيين allowWindowOps=false أو allowFontOps=false في xterm. على سبيل المثال، يتم تعيين الإعداد 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

إضافة تعليق