آسیب‌پذیری حیاتی کرنل لینوکس (CVE-2026-89775) در KVM/ARM64: فرار از ماشین مجازی و دسترسی به حافظه میزبان

security news

یک آسیب‌پذیری در کد مجازی‌سازی KVM کرنل لینوکس با شناسه CVE-2026-89775 و امتیاز CVSS (kernel.org): 9.3 (امتیاز CVSS در بین سازندگان مختلف از ۷.۸ تا ۹.۳ متغیر است.)، برای پردازنده‌های ARM64 شناسایی شده که می‌تواند یک قطعه از حافظه میزبان آزاد شده را برای ماشین مجازی مهمان در معرض دید قرار دهد، در صورتی که میزبان قابلیت مجازی‌سازی تودرتو (nested virtualization) را فعال کرده باشد.

بردار حمله: محلی (AV:L)، بدون نیاز به احراز هویت (PR:N)، بدون نیاز به تعامل کاربر (UI:N)، با تغییر دامنه (S:C) و تأثیر بالا بر محرمانگی، یکپارچگی و دسترس‌پذیری (C:H/I:H/A:H).

ریشه آسیب‌پذیری
  • این نقص امنیتی در بخشی از KVM قرار دارد که مجازی‌سازی تودرتو در ARM64 را مدیریت می‌کند.
  • هنگامی که ماشین مجازی حافظه خود را به روش خاصی سازماندهی می‌کند، یک محاسبه اندازه به صفر می‌رسد و مرحله‌ای که باید ورودی‌های کهنه را از حافظه پنهان آدرس پردازنده (TLB invalidation) پاک کند، نادیده گرفته می‌شود.
  • در نتیجه، یک صفحه از حافظه میزبان که آزاد شده است، به‌ صورت writable در ماشین مجازی مهمان نگاشت شده و باقی می‌ماند.
  • مهمان می‌تواند این حافظه را ۶۴ بیت در هر بار بخواند و بنویسد، بدون هیچ تله سخت‌افزاری که کنترل را به میزبان بازگرداند.
نحوه اکسپلویت
  • سناریوی اصلی (فرار از ماشین مجازی): مهمان می‌تواند از این آسیب‌پذیری برای فرار از ماشین مجازی خود و اجرای کد روی ماشین میزبان استفاده کند.
  • سناریوی دوم (ارتقاء سطح دسترسی محلی): در سیستم‌هایی که هر کاربری می‌تواند /dev/kvm را باز کند، یک کاربر محلی می‌تواند یک ماشین مجازی بسازد و از همان نقص برای گرفتن دسترسی root روی میزبان استفاده کند.
  • Red Hat اشاره کرده که در برخی توزیع‌ها از جمله Red Hat Enterprise Linux، این دستگاه به‌طور پیش‌فرض برای همه کاربران باز است (مجوز 0666).
شرط استفاده از آسیب‌پذیری
  • مجازی‌سازی تودرتو باید فعال باشد. این قابلیت در ARM64 به‌طور پیش‌فرض خاموش است و یک حالت آزمایشی بوت‌تایم محسوب می‌شود که نیازمند سخت‌افزار Armv8.4 با ویژگی FEAT_NV2 است.
  • یک میزبان ARM64 KVM ساده که هرگز این قابلیت را روشن نکرده باشد، از مسیر حمله گزارش‌شده خارج است.
نسخه‌های آسیب‌پذیر و وصله‌ شده
  • کد آسیب‌پذیر از Linux 6.16 در کرنل وجود دارد، اما نویسنده وصله آن را با یک تغییر بعدی برچسب‌گذاری کرده و نگهدارنده‌ای که آن را بررسی و تست کرده گفته است: «invalidation نادیده‌ گرفته‌ شده فقط از v6.17 شروع می‌شود.» بنابراین میزبانی که روی 6.16 است، کد را دارد اما رفتار مورد نیاز مهاجم را ندارد.
  • در نسخه‌های بالادست (Upstream) وصله شده است: Linux 6.18.51، 7.2.5 و 7.3-rc1.
  • Debian: bookworm و trixie آسیب‌پذیر نیستند (کد وجود ندارد)؛ sid در 7.2.6-1 وصله شده؛ forky آسیب‌پذیر است.
  • Red Hat: نسخه ۱۰ کرنل را آسیب‌پذیر و نسخه‌های ۶ تا ۹ را غیرآسیب‌پذیر اعلام کرده است.
وضعیت اکسپلویت و توصیه‌ها
  • هیچ کد اکسپلویتی منتشر نشده و نشانه‌ای از استفاده از نقص امنیتی مذکور در حملات واقعی وجود ندارد.
  • تا تاریخ ۲۲ سپتامبر ۲۰۲۶، این آسیب‌پذیری در فهرست CISA آسیب‌پذیری‌های تحت بهره‌برداری قرار نداشته و امتیاز اکسپلویت پیش‌بینی‌ شده آن کمتر از ۱٪ بوده است.
  • Red Hat اعلام کرده که هیچ راه‌حل کاهشی (mitigation) معیارهای آن برای یک راه‌حل موقت را برآورده نمی‌کند.
  • توصیه‌های کاهش ریسک: خاموش کردن مجازی‌سازی تودرتو در صورت عدم نیاز؛ محدود کردن دسترسی به /dev/kvm به کاربران و سرویس‌های مورد اعتماد؛ به‌روزرسانی به نسخه‌های وصله‌شده کرنل؛ و برای ارائه‌دهندگان ابر، بررسی اینکه آیا مجازی‌سازی تودرتو برای tenants در معرض قرار گرفته است یا خیر.

 

 

https://thehackernews.com/2026/09/new-linux-kernel-flaw-gives-arm64-kvm.html