
ثغرة vhost في Linux CVE-2026-74580 تتيح صلاحيات root محليًا والهروب من الضيف
ثغرة Linux vhost التي عمرها تسع سنوات CVE-2026-74580 (Vghost) تتيح للمستخدم المحلي غير المخوّل الحصول على صلاحيات root والهروب من الجهاز الافتراضي إلى المضيف. عثر عليها Tencent Zhuque Lab بمساعدة الذكاء الاصطناعي.
الخلفية والتأثير
أعلن Tencent Zhuque Lab عن وجود ضعف في النظام الفرعي vhost داخل نواة Linux، المعروفة باسم CVE-2026-74580 وVghost. الثغرة تصيب الإصدارات من 4.11 إلى 7.2-rc4، أي على مدى نحو تسع سنوات. تتيح لمستخدم محلي غير مخوّل قراءة وكتابة أي ذاكرة نواة، وتجاوز ترتيب مساحة عناوين النواة العشوائي، والحصول على صلاحيات root. في سيناريو المحاكاة الافتراضية، عندما يتم وضع جهاز virtio خلف IOMMU افتراضي مع تفعيل iommu_platform ويعمل vhost في وضع device-IOTLB، يمكن لضيف غير موثوق به تفعيل نفس الثغرة والكتابة خارج الحدود في عملية QEMU الخاصة بالمضيف، مما قد يتيح تنفيذ تعليمات برمجية على المضيف.
تم اكتشاف الثغرة بمساعدة Corvus AI، وهو نظام متعدد الوكلاء من Tencent لأبحث نقاط ضعف النواة. يشير تصحيح upstream إلى نظام AI بسطر Assisted-by. أصدر Tencent التصحيح في 3 أغسطس، بينما نشر الوصف الكامل مع عروض توضيحية في 12 أكتوبر. لا توجد تقارير عامة عن استغلال فعلي للثغرة.
التفاصيل التقنية
يسرّع النظام الفرعي vhost عمليات الإدخال والإخراج الشبكية وغيرها للأجهزة الافتراضية والحاويات. يستخدمه المستخدم المحلي عبر عقد أجهزة مثل /dev/vhost-net أو /dev/vhost-vsock. يحتفظ النظام الفرعي بذاكرة تخزين مؤقت لجداول الخريطة لكل حلقة افتراضية وقائمة عامة. يُحسب الوصول إلى الذاكرة المؤقتة كدليل على أن المنطقة قد تم التحقق منها بالفعل. تُمسح الذاكرة المؤقتة عند تحديث الجداول أو إبطالها وعند إعادة تحميل القائمة، ولكن ليس عندما يغيّر VHOST_SET_VRING_ADDR أو VHOST_SET_VRING_NUM عناوين الحلقة أو حجمها أثناء قائمة نشطة.
عندما يكون IOTLB الجهاز مرفقًا، تقبل هذه الأوامر عناوين جديدة دون تحقق فوري وتؤجل التحقق إلى مرحلة متأخرة. بعد ملء الذاكرة المؤقتة، لا يكتمل التحقق التالي وvhost يترجم العناوين الجديدة باستخدام الجداول القديمة. بعد ذلك تنسخ النواة البيانات على المؤشر المستلم دون تحقق من الحدود، مما يتيح الكتابة على used ring أو قراءة descriptor خارج الجدول. هذا يمنح المهاجم بدائيات قراءة وكتابة النواة. تنبع الثغرة من تغييرين: تغيير 2017 في Linux 4.11 الذي أدخل الذاكرة المؤقتة وتفريغها، وتغيير 2020 في Linux 5.9 الذي أزال التحقق من العناوين من مسار الأمر وألغى فحص المترجم القديم.
التخفيف والخطورة
التصحيح commit de845981da67 يمسح الذاكرة المؤقتة في كل مرة تتم فيها إعادة تكوين الحلقة. يجب على المستخدمين تثبيت النواة المصححة وإعادة تشغيل النظام. أول إصدارات upstream المستقرة المصححة هي 5.10.265 و5.15.216 و6.1.183 و6.6.152 و6.12.104 و6.18.45 و7.1.9 و7.2. أصدر Red Hat وAmazon Linux وOracle Linux نوى محدّثة. صحّح Ubuntu 22.04، وبالنسبة لنسخ 24.04 و26.04 النواة لا تزال قيد المعالجة اعتبارًا من 13 أكتوبر.
قبل تفعيل النواة المصححة، يجب على المسؤولين تقييد الوصول إلى عقد أجهزة vhost في /dev/vhost-net و/dev/vhost-vsock عن طريق إزالة أذونات القراءة والكتابة للجميع، وتقييد مجموعة المالك بخدمات المحاكاة الافتراضية الموثوقة فقط، واعتبار العضوية في هذه المجموعة عملية مخوّلة. لا توجد آلية احتواء مؤقتة للهروب من الضيف إلى المضيف، والحل الوحيد هو النواة المصححة. تختلف تقييمات الخطورة: فريق CVE في kernel.org يقيّم الثغرة 8.8 بنطاق متغيّر لأن الكتابة من الضيف إلى المضيف تتجاوز حد الضيف-المضيف، بينما تقيّمها Red Hat بـ7.3 بنطاق غير متغيّر وتأثير نزاهة أقل. تمنح Amazon 7.8، وOracle 7.3.
المصادر: The Hacker News
SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي
نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.