لینوکسجزئیاتی در مورد آسیب‌پذیری‌ای که بر فرمان wall بسته util-linux تأثیر می‌گذارد، ظاهر شده است که می‌تواند به طور بالقوه توسط یک بازیگر بد برای افشای رمز عبور کاربر یا تغییر کلیپ بورد در توزیع‌های لینوکس خاص مورد بهره‌برداری قرار گیرد.

این اشکال که با نام CVE-2024-28085 ردیابی شده است، توسط محقق امنیتی Skyler Ferrante با نام رمز WallEscape شناخته شده است. این مورد به‌عنوان یک مورد خنثی‌سازی نامناسب توالی‌های فرار توصیف شده است.

Ferrante گفت[۱]: “فرمان util-linux wall توالی‌های فرار[۲] را از آرگومان‌های خط فرمان فیلتر نمی‌کند. این به کاربران غیرمجاز اجازه می‌دهد تا متن دلخواه را در پایانه‌های کاربران دیگر قرار دهند، اگر mesg روی “y” تنظیم شده و wall به‌صورت setgid باشد.”

این آسیب‌پذیری[۳] به‌عنوان بخشی از تعهدی[۴] که در آگوست ۲۰۱۳ انجام شد معرفی شد.

دستور wall برای نوشتن پیامی به پایانه‌های همه کاربرانی که در حال حاضر به یک سرور وارد شده‌اند، استفاده می‌شود، و اساساً به کاربران با مجوزهای بالا اجازه می‌دهد اطلاعات کلیدی را برای همه کاربران محلی پخش کنند[۵] (به‌عنوان‌مثال، خاموش‌شدن سیستم).

در صفحه man فرمان لینوکس آمده است[۶]: “wall یک پیام یا محتوای یک فایل یا در غیر این صورت ورودی استاندارد آن را در پایانه‌های همه کاربرانی که در حال حاضر وارد شده‌اند نمایش می‌دهد. فقط ابرکاربر می‌تواند روی پایانه‌های کاربرانی بنویسد که پیام‌ها را رد کرده‌اند یا از برنامه‌ای استفاده می‌کنند که به طور خودکار پیام‌ها را رد می‌کند.”

CVE-2024-28085 اساساً از توالی‌های فرار نادرست فیلتر شده ارائه شده از طریق آرگومان‌های خط فرمان برای فریب کاربران برای ایجاد یک درخواست جعلی [۷]sudo (معروف به superuser do) در پایانه‌های دیگر کاربران بهره‌برداری می‌کند و آنها را فریب می‌دهد تا رمزهای عبور خود را وارد کنند.

بااین‌حال، برای این کار، ابزار [۸]mesg – که توانایی نمایش پیام‌های سایر کاربران را کنترل می‌کند – باید روی “y” (فعال) تنظیم شود و دستور wall باید دارای مجوزهای setgid باشد.

CVE-2024-28085 بر Ubuntu 22.04 و Debian Bookworm تأثیر می‌گذارد؛ زیرا این دو معیار برآورده می‌شوند. از طرف دیگر، CentOS آسیب‌پذیر نیست؛ زیرا فرمان دیوار setgid ندارد.

Ferrante گفت: “در اوبونتو ۲۲٫۰۴، ما به طور پیش فرض کنترل کافی برای افشای رمز عبور کاربر داریم. زمانی که کاربر رمز عبور خود را به درستی تایپ می کند، تنها نشانه حمله به کاربر، یک اعلان رمز عبور نادرست خواهد بود، به همراه اینکه رمز عبور آنها در تاریخچه دستورات آنها قرار دارد.”

به طور مشابه، در سیستم‌هایی که امکان ارسال پیام‌های دیواری را فراهم می‌کنند، یک مهاجم به طور بالقوه می‌تواند کلیپ بورد کاربر را از طریق دنباله‌های فرار در پایانه‌های انتخابی مانند Windows Terminal تغییر دهد. این مورد در ترمینال GNOME کار نمی‌کند.

به کاربران توصیه می‌شود برای کاهش این نقص به util-linux نسخه ۲٫۴۰ به روز رسانی کنند.

باتوجه‌به یادداشت‌های انتشار[۹]، «[CVE-2024-28085] به کاربران غیرمجاز اجازه می‌دهد تا متن دلخواه را در پایانه‌های کاربران دیگر قرار دهند، اگر mesg روی y و *wall setgid* باشد. همه توزیع‌ها تحت‌تأثیر قرار نمی‌گیرند (به‌عنوان‌مثال، CentOS، RHEL، Fedora تحت‌تأثیر قرار نمی‌گیرند؛ دستور wall در اوبونتو و Debian هر دو setgid هستند و mesg به طور پیش‌فرض روی y تنظیم شده است).»

این افشاگری زمانی صورت می‌گیرد که یک محقق امنیتی notselwyn یک آسیب‌پذیری بدون استفاده در زیرسیستم netfilter[10] در هسته لینوکس (بین حداقل نسخه‌های ۵٫۱۴ و ۶٫۶٫۱۴) را شرح داده است[۱۱] که بر اساس روش Dirty Pagetable[12] است و می‌تواند برای دستیابی به افزایش امتیاز محلی مورد بهره برداری قرار گیرد.

با اختصاص شناسه [۱۳]CVE CVE-2024-1086 (امتیاز ۸/۷ در مقیاس CVSS)، این آسیب‌پذیری یک مشکل اساسی ناشی از شکست پاکسازی ورودی netfilter verdicts است[۱۴]، که به مهاجم محلی اجازه می‌دهد تا شرایط انکار سرویس (DoS) را ایجاد کند یا احتمالاً کد دلخواه را اجرا کند. این مورد در یک تعهد[۱۵] در ۲۴ ژانویه ۲۰۲۴ بررسی شده است.

 

منابع

[۱] https://en.wikipedia.org/wiki/Escape_sequence

[۲] https://github.com/skyler-ferrante/CVE-2024-28085

[۳] https://people.rit.edu/sjf5462/6831711781/wall_2_27_2024.txt

[۴] https://github.com/util-linux/util-linux/commit/cdd3cc7fa4cafde492039180bb47f27ab8422261

[۵] https://www.baeldung.com/linux/message-a-local-user

[۶] https://man7.org/linux/man-pages/man1/wall.1.html

[۷] https://man7.org/linux/man-pages/man8/sudo.8.html

[۸] https://man7.org/linux/man-pages/man1/mesg.1.html

[۹] https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.40/v2.40-ReleaseNotes

[۱۰] https://thehackernews.com/2022/03/new-linux-bug-in-netfilter-firewall.html

[۱۱] https://pwning.tech/nftables

[۱۲] https://yanglingxi1993.github.io/dirty_pagetable/dirty_pagetable.html

[۱۳] https://nvd.nist.gov/vuln/detail/CVE-2024-1086

[۱۴] https://thermalcircle.de/doku.php?id=blog:linux:nftables_packet_flow_netfilter_hooks_detail

[۱۵] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f342de4e2f33e0e39165d8639387aa6c19dff660

[۱۶] https://thehackernews.com/2024/03/new-linux-bug-could-lead-to-user.html