یک آسیب پذیری در فرمان wall پکیج util-linux به تازگی کشف شده است که بخشی از سیستم عامل لینوکس میباشد و میتواند به مهاجم غیرمجاز اجازه دهد تا پسوردها را برباید و کلیپ بورد قربانی را تغییر دهد. این آسیب پذیری امنیتی که با شناسه CVE-2024-28085 دنبال میشود، WallEscape نام دارد و در تمام نسخههای پکیج در یازده سال گذشته تا نسخه 2.40 که بیست و هفتم مارس ۲۰۲۴ منتشر شد، وجود دارد.
هکرها در واقع با استفاده از این آسیب پذیری میتوانند قسمت درخواست پسورد برای SUDO را به صورت جعلی به منظور سرقت پسورد ایجاد نمایند و یا اطلاعات موجود در کلیپ بورد قربانی را تغییر دهند. CVE-2024-28085 توسط محقق امنیتی Skyler Ferrante با نام رمز WallEscape شناخته میشود که به عنوان یک مورد خنثی سازی نامناسب توالی های گریز (escape sequences) در فرمان wall توصیف شده است.
فرمان wall در util-linux، توالیهای گریز را از آرگومان های خط فرمان فیلتر نمیکند. این قابلیت، به کاربران غیرمجاز اجازه میدهد تا در صورتی که mesg بر روی ” y” و wall بر روی setgid تنظیم شده باشند، متن دلخواه را در ترمینال سایر کاربران قرار دهند.
فرمان wall برای نوشتن پیامی در ترمینال همه کاربرانی که در حال حاضر به یک سرور وارد شدهاند، استفاده میشود که اساساً به کاربران با مجوز و سطوح دسترسی بالا اجازه میدهد تا اطلاعات کلیدی را برای تمامی کاربران لوکال (به عنوان مثال خاموش شدن سیستم) ارسال کنند.
اگرچه این آسیب پذیری نمونه جالبی از این است که چگونه یک مهاجم میتواند کاربر را فریب دهد تا رمز عبور admin خود را بدهد، اما بهرهبرداری از آن احتمالاً محدود به سناریوهای خاصی میباشد.
در صفحه man فرمان لینوکس آمده است: ” wall یک پیام، محتویات یک فایل و ورودی استاندارد را در ترمینال همه کاربرانی که در حال حاضر وارد شده اند نمایش میدهد”. superuser فقط میتواند بر روی پایانههای کاربرانی بنویسد که پیامها را رد کردهاند یا از برنامهای استفاده میکنند که به طور خودکار پیامها را رد میکند.
CVE-2024-28085 اساساً از توالی های گریز نادرست فیلتر و ارائه شده از طریق آرگومان های خط فرمان برای فریب کاربران به منظور ایجاد یک درخواست جعلی sudo (معروف به superuser do) در ترمینالهای دیگر کاربران سوء استفاده میکند و آنها را فریب میدهد تا رمزهای عبور خود را وارد کنند.
با این حال، برای این کار، ابزار mesg که قابلیت نمایش پیامهای سایر کاربران را کنترل میکند باید بر روی ” y” (یعنی فعال) تنظیم شود و دستور wall نیز میبایست دارای مجوزهای setgid باشد.
CVE-2024-28085 بر Ubuntu 22.04 و Debian Bookworm تأثیر میگذارد زیرا این دو معیار را برآورده می کنند. از سوی دیگر، CentOS آسیب پذیر نیست زیرا فرمان wall دارای setgid نمیباشد.
تمامی توزیعها مانند CentOS، RHEL، Fedora تحت تأثیر این آسیب پذیری قرار ندارند اما wall در اوبونتو و Debian بر روی setgid تنظیم شده و mesg نیز بهطور پیشفرض بر روی y است.
ما در اوبونتو 22.04، به طور پیش فرض کنترل کافی برای افشای رمز عبور کاربر را داریم. زمانی که کاربر رمز عبور خود را به درستی تایپ میکند، تنها نشانه حمله به کاربر، یک اعلان رمز عبور نادرست خواهد بود، همراه با اینکه رمز عبور آنها در تاریخچه دستورات (commandها) قرار دارد.
به طور مشابه، در سیستمهایی که امکان ارسال پیامهای wall را فراهم میکنند، یک مهاجم به طور بالقوه میتواند کلیپ بورد کاربر را از طریق دنبالههای گریز در ترمینال های انتخابی مانند ترمینال ویندوز (Windows Terminal ) تغییر دهد. این مورد در ترمینال GNOME عمل نمیکند.
به کاربران توصیه می شود برای برطرف نمودن این نقص به util-linux نسخه 2.40 به روز رسانی کنند و سطح دسترسی SUID را از کامند Wall گرفته و با استفاده از دستور mesg تنظیم message broadcast را غیرفعال نمایند.