چکیده

آسیب‌پذیری GhostLock در کامپوننت rtmutex کرنل لینوکس از نوع استفاده پس از آزادسازی (Use-After-Free) است که در نتیجه مدیریت نادرست وضعیت یک Waiter در مسیرهای خاص rtmutex ایجاد می‌شود. این ضعف امنیتی با ایجاد خرابی حافظه (Memory Corruption) در سطح کرنل، امکان افزایش سطح دسترسی (Privilege Escalation) را برای یک مهاجم لوکال با سطح دسترسی محدود فراهم می‌کند و در سناریوهای اندروید، می‌تواند منجر به افزایش سطح دسترسی تا Root و کنترل بخش‌های حساس سیستم شود.

توضیحات

آسیب‌پذیری GhostLock با شناسه CVE-2026-43499 در کامپوننت rtmutex کرنل لینوکس و در مسیر مرتبط با Futex Priority Inheritance (Futex PI) قرار دارد. ریشه این آسیب‌پذیری به تابع  remove_waiter()مربوط است؛ تابعی که برای حذف یک Waiter از ساختارهای مرتبط با انتظار در rtmutex استفاده می‌شود. این تابع در حالت عادی باید عملیات حذف را بر اساس تسک ثبت‌شده در waiter->task انجام دهد، اما در مسیر Proxy-Lock Rollback که از طریق futex_requeue() فراخوانی می‌شود، به‌جای waiter->task از current استفاده می‌کند. از آنجا که در این مسیر waiter->task لزوماً همان current نیست، برخی عملیات مرتبط با Waiter روی تسکی انجام می‌شود که به آن Waiter تعلق ندارد و این ناهماهنگی، وضعیت داخلی مرتبط با Priority Inheritance (PI) را دچار خطا می‌کند.

این خطا چند پیامد مرتبط در سطح کرنل دارد. از یک سو، عملیات حذف Waiter از ساختار Red-Black Tree (RBTrees) بدون در اختیار داشتن قفل pi_lock مربوط به تسک واقعی Waiter انجام می‌شود. از سوی دیگر، وضعیت pi_blocked_on برای همان تسک به‌درستی پاک‌سازی نمی‌شود و در نتیجه، یک اشاره‌گر معلق (Dangling Pointer) باقی می‌ماند؛ یعنی اشاره‌گری که همچنان به یک بخش یا ساختار نامعتبر در حافظه ارجاع می‌دهد. ادامه استفاده از این اشاره‌گر می‌تواند منجر به آسیب‌پذیری استفاده پس از آزادسازی (Use-After-Free) شود. علاوه بر این، تابع rt_mutex_adjust_prio_chain()  ممکن است به‌جای تسک واقعی مرتبط با Waiter، روی تسک دیگری عمل کند و در نتیجه، زنجیره تنظیم اولویت (Priority Chain) در وضعیت نادرستی قرار گیرد.

این آسیب‌پذیری در دسته CWE-416 قرار می‌گیرد که به ضعف «استفاده پس از آزادسازی» (UAF) مربوط است. در این نوع آسیب‌پذیری، سیستم پس از آزاد شدن یک Object یا حافظه اختصاص‌یافته به آن، همچنان از مرجع مربوط به آن استفاده می‌کند. از آنجا که حافظه آزادشده ممکن است بعداً به یک Object دیگر اختصاص پیدا کند، استفاده از مرجع قبلی می‌تواند باعث خواندن یا تغییر داده‌های متعلق به Object دیگری شود و در نهایت منجر به خرابی حافظه (Memory Corruption) یا پیامدهای امنیتی جدی‌تر گردد. در GhostLock، باقی ماندن این اشاره‌گر نامعتبر در وضعیت Waiter باعث می‌شود یک خطای منطقی در مدیریت قفل به یک آسیب‌پذیری قابل سوءاستفاده در سطح کرنل تبدیل شود.

اهمیت این آسیب‌پذیری زمانی بیشتر مشخص می‌شود که بدانیم کد آسیب‌پذیر سال‌ها در کرنل لینوکس وجود داشته است. بر اساس گزارش پژوهشگران، این کد از نسخه Linux 2.6.39 وارد کرنل شده و در نهایت با Commit 3bfdc63936dd پچ شده است. در این پچ، منطق تابع  remove_waiter() تغییر کرده تا عملیات حذف Waiter، پاک‌سازی وضعیت pi_blocked_on و تنظیم زنجیره اولویت ، به‌جای current بر اساس waiter->task انجام شود. به این ترتیب، عملیات مربوط به Waiter روی تسک واقعی مرتبط با آن انجام می‌شود و از ایجاد وضعیت‌های نامعتبر در ساختارهای داخلی کرنل جلوگیری می‌شود.

در محیط اندروید، اهمیت GhostLock از این جهت است که یک آسیب‌پذیری در سطح کرنل می‌تواند یک دسترسی اولیه و محدود را به کنترل گسترده‌تری بر سیستم تبدیل کند. در سناریوی اکسپلویت منتشرشده برای دستگاه‌های اندرویدی، مهاجم ابتدا از مسیر Futex PI (Priority Inheritance) برای ایجاد وضعیت استفاده پس از آزادسازی در کامپوننت rtmutex استفاده می‌کند. سپس با دستکاری ساختارهای مرتبط با Waiter، شرایط لازم برای انجام نوشتن دلخواه در حافظه کرنل را فراهم می‌کند.

در ادامه این زنجیره، مهاجم می‌تواند با دستکاری ساختارهای حساس کرنل، کنترل بیشتری بر مکانیزم‌های امنیتی و اطلاعات مربوط به سطح دسترسی پردازه به دست آورد. در نمونه اکسپلویت اندروید، این فرآیند شامل تغییر وضعیت SELinux و سپس دستکاری اطلاعات اعتبارنامه پردازه است. در این مرحله، اعتبارنامه پردازه به init_cred تغییر داده می‌شود تا شناسه کاربر (UID) به 0 و قابلیت‌های پردازه به سطح کامل برسد. در نتیجه، پردازه مهاجم می‌تواند به سطح Root دست پیدا کند. بنابراین، GhostLock در این سناریو صرفاً به کرش یا ناپایداری کرنل محدود نمی‌شود و می‌تواند افزایش سطح دسترسی لوکال را تا دستیابی به سطح Root امکان‌پذیر کند.

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

از نظر پیامدهای امنیتی، هر سه اصل اصلی امنیت با شدت بالا تحت تأثیر قرار می‌گیرند. از منظر محرمانگی (Confidentiality)، سوءاستفاده موفق از GhostLock می‌تواند امکان دسترسی غیرمجاز به داده‌ها و منابع حساس سیستم را فراهم کند. از منظر یکپارچگی (Integrity)، مهاجم می‌تواند با دستیابی به سطح Root، اطلاعات و تنظیمات حساس سیستم را تغییر داده و حتی مکانیزم‌های امنیتی آن را دستکاری کند. از منظر دسترس‌پذیری (Availability) نیز سوءاستفاده از این آسیب‌پذیری می‌تواند با ایجاد کرش یا ناپایداری در کرنل، عملکرد سرویس‌ها و پایداری دستگاه را مختل کند. آسیب‌پذیری GhostLock در کرنل لینوکس برطرف شده است و برای جلوگیری از سوءاستفاده، باید کرنل به نسخه حاوی پچ امنیتی Commit 3bfdc63936dd به‌روزرسانی شود.

CVSS

Score Severity Version Vector String
7.8 HIGH 3.1 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
شکل 1: تفسیر جدول CVSS

 

لیست محصولات آسیب پذیر

Versions Product
Affected at 2.6.39 Linux
affectedfrom 8161239a8bcce9ad6b537c04a1fa3b5c68bae693before f3fa3424bceb128d2be4b3745506b22844b87db7 Linux
affectedfrom 8161239a8bcce9ad6b537c04a1fa3b5c68bae693before 838ce5cb5d93c3ab8b27e75bc6ad905a94b752fd Linux
affectedfrom 8161239a8bcce9ad6b537c04a1fa3b5c68bae693before d8cce4773c2b23d819baf5abedc62f7b430e8745 Linux
affectedfrom 8161239a8bcce9ad6b537c04a1fa3b5c68bae693before 8a1fc8d698ac5e5916e3082a0f74450d71f9611f Linux
affectedfrom 8161239a8bcce9ad6b537c04a1fa3b5c68bae693before 6d52dfcb2a5db86e346cf51f8fcf2071b8085166 Linux
affectedfrom 8161239a8bcce9ad6b537c04a1fa3b5c68bae693before 3fb7394a837740770f0d6b4b30567e60786a63f2 Linux
affectedfrom 8161239a8bcce9ad6b537c04a1fa3b5c68bae693before 88614876370aac8ad1050ad785a4c095ba17ac11 Linux
affectedfrom 8161239a8bcce9ad6b537c04a1fa3b5c68bae693before 3bfdc63936dd4773109b7b8c280c0f3b5ae7d349 Linux

لیست محصولات بروز شده

Versions Product
unaffectedfrom 0before 2.6.39 Linux
unaffectedfrom 5.10.261through 5.10 Linux
unaffectedfrom 5.15.212 through 5.15 Linux
unaffectedfrom 6.1.175 through 6.1 Linux
unaffectedfrom 6.6.140 through 6.6 Linux
unaffectedfrom 6.12.86 through 6.12 Linux
unaffectedfrom 6.18.27 through 6.18 Linux
unaffectedfrom 7.0.4 through 7.0 Linux
unaffectedat 7.1 Linux
f3fa3424bceb128d2be4b3745506b22844b87db7 Linux
838ce5cb5d93c3ab8b27e75bc6ad905a94b752fd Linux
d8cce4773c2b23d819baf5abedc62f7b430e8745 Linux
8a1fc8d698ac5e5916e3082a0f74450d71f9611f Linux
6d52dfcb2a5db86e346cf51f8fcf2071b8085166 Linux
3fb7394a837740770f0d6b4b30567e60786a63f2 Linux
88614876370aac8ad1050ad785a4c095ba17ac11 Linux
3bfdc63936dd4773109b7b8c280c0f3b5ae7d349 Linux

استفاده محصول در ایران

در این جدول، تعداد صفحات ایندکس‌شده در گوگل با دامنه .ir که Linux kernel را ذکر کرده اند، ثبت شده است. این داده صرفاً برای برآورد تقریبی حضور محصولات در وب ایران استفاده شده و نمایانگر میزان نصب دقیق و استفاده واقعی نیست.

Approx. Usage in .ir Domain via Google (Total Pages) Search Query (Dork) Product
38,400 site:.ir “Linux kernel” Linux kernel

نتیجه گیری

آسیب‌پذیری GhostLock با شدت بالا (High) در کامپوننت rtmutex کرنل لینوکس، از نوع استفاده پس از آزادسازی (UAF) است که می‌تواند در شرایط خاص منجر به خرابی حافظه، افزایش سطح دسترسی و در سناریوهای اندروید، دستیابی به سطح Root شود. با توجه به امکان سوءاستفاده از این ضعف در سطح کرنل، اجرای اقدامات زیر برای کاهش ریسک توصیه می‌شود:

  • به‌روزرسانی کرنل: به‌روزرسانی کرنل مهم‌ترین اقدام برای رفع آسیب‌پذیری GhostLock است؛ بنابراین باید کرنل به نسخه‌ای حاوی پچ امنیتی Commit 3bfdc63936dd به‌روزرسانی شود.
  • بررسی وضعیت کرنل دستگاه‌های اندروید: مدیران سیستم و تیم‌های امنیتی باید نسخه کرنل دستگاه‌های اندروید را بررسی کرده و مشخص کنند آیا نسخه مورد استفاده در محدوده آسیب‌پذیر قرار دارد یا خیر.
  • اولویت‌بندی دستگاه‌های حساس: سیستم‌های اشتراکی، سرورهای چندمستاجری (Multi-Tenant Servers)، محیط‌های ابری، کانتینرها و دستگاه‌هایی که داده‌های حساس را پردازش می‌کنند، باید در اولویت دریافت پچ قرار گیرند.
  • کنترل اجرای کد در فضای کاربر: دسترسی کاربران و برنامه‌های غیرمجاز به اجرای کد در فضای کاربر (User Space) باید تا حد امکان محدود شود؛ زیرا سوءاستفاده از GhostLock در سناریوهای لوکال به دسترسی اولیه در همین سطح نیاز دارد.
  • مانتیتورینگ فعالیت‌های مشکوک: تیم‌های امنیتی باید فعالیت‌های غیرعادی مرتبط با کرش‌های کرنل، تلاش برای افزایش سطح دسترسی و تغییرات مشکوک در پیکربندی امنیتی سیستم را به‌دقت مانیتور کنند

اجرای این اقدامات، به‌ویژه به‌روزرسانی کرنل و اعمال پچ امنیتی مربوط به GhostLock، احتمال سوءاستفاده موفق از این آسیب‌پذیری را کاهش می‌دهد و از تبدیل یک دسترسی محدود در فضای کاربر به دسترسی سطح Root و کنترل گسترده‌تر سیستم جلوگیری می‌کند.

امکان استفاده در تاکتیک‌های MITRE ATT&CK (در زمان اجرای حمله)

Privilege Escalation (TA0004)

بهره‌ برداری موفق از CVE-2026-43499 مستلزم افزایش امتیاز (Privilege Escalation) است. مهاجم برای آغاز حمله، نیاز به دسترسی محلی با سطح دسترسی پایه (مطابق CVSS، PR:L) دارد. او با مهندسی شرایط رقابت (Race Condition) در مسیر‌های rtmutex و futex، قادر به ایجاد یک وضعیت ناهمگام‌ سازی (Synchronization Flaw) و به‌ دنبال آن، استفاده از حافظهٔ آزاد شده (Use-After-Free) در فضای کرنل می ‌شود. در پی تخریب حافظهٔ هسته (Kernel Memory Corruption)، امکان اجرای کد دلخواه با سطح دسترسی ریشه (root) یا کرنل فراهم می‌گردد.

Execution (TA0002)

پس از فعال‌ شدن حالت آسیب‌ پذیر، استفاده از اشاره ‌گری که به ساختار waiter آزاد شده اشاره دارد، منجر به Use-After-Free (UAF) در فضای کرنل می ‌شود. اگر مهاجم بتواند قابلیت‌ های لازم برای کنترل حافظهٔ تخریب ‌شده را فراهم آورد (مانند دسترسی به نوشتن یا تغییر محتوای اشیاء کرنلی) این نقص از یک Crash به ابزاری برای تغییر جریان اجرا (Control Flow Hijacking) تبدیل می‌ شود. در نتیجه، اجرای کد با سطح دسترسی کرنل، پیامدِ نهایی بهره‌ برداری هدفمند از این UAF است، نه صرفاً یک عارضه جانبی ناشی از Crash.

Defense Evasion (TA0005)

در صورت تبدیل موفق UAF به اجرای کد در فضای کرنل، مهاجم می ‌تواند فعالیت ‌های خود را خارج از محدوده کنترل معمول پردازه‌ های user-space انجام دهد. اجرای عملیات در سطح Kernel می ‌تواند به مهاجم امکان دستکاری مکانیزم‌ های امنیتی، فرآیندهای نظارتی یا ساختارهای مورد استفاده سیستم ‌عامل برای اعمال کنترل دسترسی را بدهد. با این حال، Defense Evasion قابلیت ذاتی CVE نیست و تنها پس از اجرای موفق exploit و در صورت وجود یک primitive مناسب قابل تحقق است.

Impact (TA0040)

خرابی حافظه در Kernel می‌ تواند علاوه بر اجرای کد، موجب Kernel Panic، Crash سیستم یا Denial of Service شود. از طرف دیگر، اگر مهاجم بتواند UAF را به اجرای کد کنترل ‌شده تبدیل کند، تأثیر آن می ‌تواند شامل از دست رفتن محرمانگی، یکپارچگی و دسترس ‌پذیری سیستم باشد. CVSS نیز برای هر سه مؤلفه C:H/I:H/A:H را تعیین کرده و امتیاز پایه 7.8 (High) است.

منابع

  1. https://www.cve.org/CVERecord?id=CVE-2026-43499
  2. https://www.cvedetails.com/cve/CVE-2026-43499/
  3. https://vulmon.com/vulnerabilitydetails?qid=CVE-2026-43499
  4. https://vuldb.com/vuln/365007
  5. https://github.com/cuteaplane/GhostLock-for-OnePlus15T
  6. https://github.com/mumaosong/cve-2026-43499-CyberMeowfia
  7. http://www.openwall.com/lists/oss-security/2026/07/08/12
  8. https://nvd.nist.gov/vuln/detail/CVE-2026-43499
  9. https://git.kernel.org/stable/c/3bfdc63936dd4773109b7b8c280c0f3b5ae7d349
  10. https://git.kernel.org/stable/c/3fb7394a837740770f0d6b4b30567e60786a63f2
  11. https://git.kernel.org/stable/c/6d52dfcb2a5db86e346cf51f8fcf2071b8085166
  12. https://git.kernel.org/stable/c/88614876370aac8ad1050ad785a4c095ba17ac11
  13. https://git.kernel.org/stable/c/8a1fc8d698ac5e5916e3082a0f74450d71f9611f
  14. https://git.kernel.org/stable/c/d8cce4773c2b23d819baf5abedc62f7b430e8745
  15. https://git.kernel.org/stable/c/838ce5cb5d93c3ab8b27e75bc6ad905a94b752fd
  16. https://git.kernel.org/stable/c/f3fa3424bceb128d2be4b3745506b22844b87db7
  17. http://cwe.mitre.org/data/definitions/416.html