یک آسیبپذیری (CVE-2022-45063) در شبیهساز ترمینال xterm شناسایی شده است که اجازه میدهد دستورات پوسته زمانی که توالیهای فرار خاصی در ترمینال پردازش میشوند، اجرا شوند. برای حمله در ساده ترین حالت، کافی است محتویات یک فایل طراحی شده مخصوص را نمایش دهید، به عنوان مثال، با استفاده از ابزار 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-mode) روی حالت “vi” استفاده کند، که معمولاً بهطور پیشفرض در توزیعها استفاده نمیشود. همچنین هنگامی که تنظیمات xterm allowWindowOps=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