کد بهره‌برداری GhostLock برای آسیب‌پذیری ریشه لینوکس که ۱۵ سال پنهان مانده بود، عمومی شد

Nebula Security
اشتراک‌گذاری:
کد بهره‌برداری GhostLock برای آسیب‌پذیری ریشه لینوکس که ۱۵ سال پنهان مانده بود، عمومی شد

محققان Nebula Security یک گزارش فنی کامل و کد بهره‌برداری عملی برای GhostLock (CVE-2026-43499) منتشر کرده‌اند. این یک آسیب‌پذیری use-after-free در هسته لینوکس است که از سال ۲۰۱۱ در تمام توزیع‌های اصلی وجود داشته است. این بهره‌برداری با پایداری ۹۷ درصد به افزایش امتیاز تا ریشه (root) دست می‌یابد و همچنین می‌تواند برای فرار از کانتینر استفاده شود. همین موضوع آن را به یکی از قابل‌اعتمادترین بهره‌برداری‌های افزایش امتیاز محلی در سال‌های اخیر تبدیل کرده است.

یک خطای ۱۵ ساله در کد قفل‌گذاری هسته

GhostLock در kernel/locking/rtmutex.c قرار دارد، به طور خاص در تابع remove_waiter() که وراثت اولویت mutex بلادرنگ (rtmutex) را مدیریت می‌کند. این باگ در یک commit از سال ۲۰۱۱ در هسته نسخه ۲.۶.۳۹ وارد شد و تا آوریل ۲۰۲۶، یعنی حدود ۱۵ سال، بدون وصله باقی ماند.

این نقص ناشی از مدیریت نادرست اشاره‌گرهای وظیفه (task pointers) در عملیات‌های PI futex است. وقتی یک ریسه از لیست منتظران حذف می‌شود، تابع به اشتباه فیلد pi_blocked_on وظیفه فراخواننده را پاک می‌کند، نه وظیفه‌ای که واقعاً حذف می‌شود. یک مهاجم بدون دسترسی ممتاز می‌تواند با استفاده از فراخوانی‌های سیستمی استاندارد ریسه‌ای این وضعیت را ایجاد کند و یک اشاره‌گر سرگردان به حافظه پشته به دست آورد.

از آنجا، زنجیره حمله امکان نوشتن یک اشاره‌گر به تقریباً هر آدرس هسته و ربودن یک جدول تابع برای کنترل کامل جریان را فراهم می‌کند که در نهایت به یک شل ریشه ختم می‌شود. این بهره‌برداری نیاز به فعال بودن CONFIG_FUTEX_PI دارد که در تمام توزیع‌های لینوکس به صورت پیش‌فرض فعال است.

دریافت جایزه ۹۲,۳۳۷ دلاری در kernelCTF گوگل

Nebula Security نخستین بار GhostLock را در رقابت kernelCTF گوگل نشان داد و برای بهره‌برداری عملی خود جایزه ۹۲,۳۳۷ دلاری دریافت کرد. گزارش بخش دوم تیم، که در ۷ ژوئیه منتشر شد، یک نقشه راه کامل برای بهره‌برداری ارائه می‌دهد، از جمله تکنیک‌های چیدمان heap که برای دستیابی به نرخ موفقیت ۹۷ درصد در نسخه‌های هسته از ۲.۶.۳۹ تا ۷.۱-rc1 استفاده شده است.

همانطور که اولین بار توسط Nebula Security گزارش شد، دامنه آسیب‌پذیر شامل اکثر هسته‌هایی است که در ۱۵ سال گذشته توسط توزیع‌های اصلی عرضه شده‌اند. هر سیستمی که هسته‌ای از این دامنه را بدون وصله‌های آوریل ۲۰۲۶ اجرا کند، همچنان توسط یک کاربر محلی قابل بهره‌برداری است.

وصله در دسترس است، اما بسیاری از سیستم‌ها محافظت نشده‌اند

نگه‌دارندگان هسته لینوکس وصله را در آوریل ۲۰۲۶ از طریق commitهایی به درخت پایدار ارسال کردند و توزیع‌های اصلی آن را در آخرین به‌روزرسانی‌های هسته LTS خود گنجانده‌اند. اما با در دسترس بودن کد بهره‌برداری عمومی، هر سیستم لینوکسی که وصله نشده و کاربر غیرقابل اعتماد می‌تواند به صورت محلی وارد آن شود، در معرض خطر جدی قرار دارد.

محیط‌های کانتینر نیاز به توجه ویژه دارند: یک فرار از کانتینر از طریق GhostLock به مهاجم دسترسی ریشه به میزبان اصلی می‌دهد و تمام جداسازی‌های کانتینر را دور می‌زند. ارائه‌دهندگان ابر که محیط‌های اشتراکی چندمستاجری را روی هسته‌های وصله‌نشده اجرا می‌کنند، باید این موضوع را یک مشکل P0 تلقی کنند.

چه باید کرد

مدیران سیستم باید فوراً نسخه هسته خود را بررسی کنند و در صورت عدم انجام، به آخرین انتشار LTS توزیع خود به‌روزرسانی نمایند. وصله در درخت پایدار هسته قرار دارد و به تمام شاخه‌های LTS پشتیبانی‌شده بازگردانده شده است. توزیع‌هایی از جمله Ubuntu، Debian، Fedora، Red Hat Enterprise Linux و Alpine همگی بسته‌های به‌روزرسانی‌شده را منتشر کرده‌اند.

اجرای uname -r و مقایسه آن با نسخه هسته وصله‌شده توزیع، سریع‌ترین راه برای بررسی میزان مواجهه است. تا زمان تکمیل وصله، محدود کردن دسترسی کاربران محلی و بررسی لاگ‌های حسابرسی برای تلاش‌های غیرعادی افزایش امتیاز توصیه می‌شود.

Originally reported by Nebula Security. Read the original article for additional details.

View original source
اشتراک‌گذاری: