کد CVE-2026-64531 — راه مستقیم به روت از طریق Open vSwitch

یک نقص محدودیت طول در datapath هسته در Open vSwitch با نام OVSwrap به کاربران محلی عادی اجازه می‌دهد در بسیاری از توزیع‌ها با پیکربندی پیش‌فرض به دسترسی روت دست پیدا کنند. این آسیب‌پذیری با شناسه CVE-2026-64531 و امتیاز CVSS معادل 7.8 ثبت شده و اکسپلوییتی منتشر شده برای نزدیک به 800 بیلد کرنل x86-64 وجود دارد.

چرا این آسیب‌پذیری خطرناک است

  • نقص در مسیر datapath هسته است، نه در دیمون userspace ovs-vswitchd؛ بنابراین نیازی به پل OVS یا سرویس‌های در حال اجرای سطح کاربر نیست.
  • مهاجم به CAP_NET_ADMIN نیاز ندارد؛ فعال بودن namespaceهای کاربری کافی است و یک کاربر عادی می‌تواند با unshare -Urn namespace جدید بسازد و از مسیر آسیب‌پذیر استفاده کند.
  • اگر ماژول openvswitch نصب شده اما بارگذاری نشده باشد، ردگیری نام Generic Netlink می‌تواند آن را خودکار بارگذاری کند؛ خروجی خالی lsmod به معنی ایمن بودن نیست.

ریشهٔ فنی

Open vSwitch اکشن‌های تولیدشده (generated flow actions) را به‌صورت صفات Netlink ذخیره می‌کند و فیلد nla_len این صفات 16 بیتی است. هر صفت تودرتو محدود به 65,535 بایت می‌شود. تخصیص ناایمن این طول دست‌کم برای سال‌ها وجود داشته، اما تا پیش از حذف محدودیت کل 32 KiB روی جریان اکشن‌ها، امکان سوءاستفاده به‌راحتی فراهم نبود. در مارس 2025 آن سقف برداشته شد و محافظ قبلی حذف شد که در نتیجه باگ قدیمیِ wraparound آشکار شد.

مهاجم می‌تواند یک اکشن CLONE حاوی صدها زیر-اکشن conntrack ارسال کند. روی معماری x86-64، هر زیر-اکشن تقریباً تا 164 بایت گسترش می‌یابد و طول تودرتو از 65,535 عبور می‌کند. هنگام نوشتن مقدار در فیلد 16 بیتی، wraparound رخ می‌دهد و مقدار طول به‌صورت نادرست کاهش می‌یابد. کد بعدی روی این طول اعتماد می‌کند و به‌دنبال دادهٔ تحت کنترل مهاجم پارس را ادامه می‌دهد؛ نتیجه نشت اشاره‌گر هسته، خواندن دلخواه حافظه هسته و توانایی تغییر مقادیری مثل fsuid/fsgid است.

زنجیرهٔ اکسپلویت و اثربخشی

محقق با استفاده از wraparound سه ابزار کلیدی استخراج کرده است: نشت اشاره‌گر هسته از طریق اکشن OUTPUT جعلی، خواندن دلخواه هسته با SET تونل جعل‌شده و کاهش هدف‌مند از طریق خراب‌سازی نشان‌گر tun_dst. ترکیب این ابزارها به مهاجم امکان می‌دهد credentialهای یک فرایند میزبان را پیدا کند و در کرنل‌های مدرن مقادیر fsuid و fsgid را تا صفر کاهش دهد.

PoC منتشرشده صراحتاً مخرب است: در صورت موفقیت credentialِ زندهٔ هسته را خراب می‌کند، محتویات /etc/sudoers یا /etc/sudoers.d را تغییر می‌دهد، شل روت ایجاد می‌کند و برای جلوگیری از teardown ناایمن برخی پروسس‌ها و وضعیت OVS را باقی می‌گذارد. این PoC نیازمند پشتیبانی conntrack در OVS، helper مربوط به FTP conntrack و حضور sudo است. مخزن PoC رکوردهای از پیش‌سازگار برای تقریباً 800 بیلد دقیق x86-64 شامل می‌کند و برای بیلدهای دیگر از سمبل‌ها یا BTF برای استنتاج استفاده می‌کند.

نسخه‌های کرنل که اصلاح شدند

اصلاح بالادستی پیش از افشا در شاخه‌های پایدار در 24 ژوئیه منتشر شد. نسخه‌های اولیهٔ دارای اصلاح شامل Linux 5.15.212، 6.1.178، 6.6.145، 6.12.97، 6.18.40 و 7.1.5 هستند. شاخه‌های پایان‌عمر 6.13–6.17، 6.19 و 7.0 اصلاحات بالادستی دریافت نخواهند کرد. برای اطلاع دقیق‌تر و پیگیری انتشارهای بعدی به kernel.org و پیگیری‌کننده‌های فروشنده مراجعه کنید؛ کرنل‌های توزیع‌ها ممکن است تغییرات downstream و بازپس‌برد (revert) داشته باشند و صرفاً شمارهٔ بالادستی کافی نیست.

توزیع‌هایی که آزمایش شدند

آزمایش‌های اولیه نشان داد سوءاستفاده پیش‌فرض روی توزیع‌هایی مانند AlmaLinux 9/10، Alpine 3.22–3.24، Amazon Linux 2023، Arch، CentOS Stream 9/10، Debian 12/13، Fedora 42–44، Gentoo، Kali 2026.1، Linux Mint 22.3، NixOS، openSUSE Tumbleweed، Pop!_OS، Rocky Linux 9/10 و Ubuntu 22.04 قابل اجرا بوده است. اوبونتو 24.04 با AppArmor به‌صورت پیش‌فرض جلوی ایجاد مستقیم namespace را گرفت اما PoC با بازگشت به aa-exec توانست دسترسی را بازیابی کند؛ اوبونتو 26.04 مسیر کاربر عادی را بست ولی با غیرفعال‌سازی محدودیت AppArmor روی namespaceهای کاربری نیز آن سیستم‌ها قابل سوءاستفاده شدند.

توصیه‌های فوری برای مدیران سیستم

اگر فروشنده وصلهٔ کرنل منتشر کرده است: فوراً وصله را نصب و سرویس‌ها را مطابق راهنمای فروشنده بازبینی کنید.

اگر تا دریافت وصله نیاز به کاهش ریسک دارید:

  • اگر Open vSwitch مورد نیاز نیست، جلوگیری از بارگذاری ماژول سریع‌ترین موقت است. برای این کار فایل زیر را بسازید:
echo 'install openvswitch /bin/false' > /etc/modprobe.d/ovswrap.conf
  • اگر ماژول هم‌اکنون بارگذاری شده است، آن را از حافظه خارج کنید یا سیستم را ریبوت کنید.
  • اگر Open vSwitch برای سرویس‌های حیاتی لازم است، با فروشنده و تیم نگهداری توزیع هماهنگ کنید تا کرنل وصله‌شده دریافت و نصب شود.
  • محدودیت‌هایی مثل AppArmor یا سیاست‌های namespace را بررسی کنید اما نباید تنها روی آن‌ها حساب کرد؛ PoC مسیرهای fallback نشان داده است.

منابع و پیگیری

گزارش اولیه توسط پژوهشگر امنیتی آصیم منیزاده در 19 ژوئن ارسال و در 28 ژوئیه عمومی شد. برای جزئیات فنی و پیگیری وضعیت وصله‌ها به صفحات رسمی kernel.org و صفحهٔ CVE در MITRE مراجعه کنید.

انتظارها و اقدامات بعدی

انتشار عمومی PoC با رکوردهای گسترده فشار را بر توزیع‌ها و تیم‌های عملیات برای نصب سریع وصله‌ها افزایش می‌دهد. توصیه می‌شود اولویت‌بندی اصلاح کرنل، بررسی نصب Open vSwitch روی میزبان‌ها و اعمال موقت‌های پیشنهادی در دستور کار قرار گیرد تا خطر سوءاستفاده کاهش یابد.

همکاری مداوم بین پژوهشگران، نگهدارندگان هسته و تیم‌های توزیع تعیین می‌کند کدام سامانه‌ها سریع‌تر این تهدید را پشت سر می‌گذارند و کدام سامانه‌ها همچنان در معرض خطر باقی می‌مانند.