ثغرتان لالهروب من الأجهزة الافتراضية في لينكس: PwnEscape وVghost — بما يتجاوز KVM
أساليب الهجوم وتقنياته2026-10-21, 13:00
تم الكشف عن ثغرتين في نواة لينكس يمكنهما اختراق عزل الأجهزة الافتراضية: CVE-2026-99999 (PwnEscape) وCVE-2026-74580 (Vghost). تتعلق الأولى بحساب مؤجل لمجموع التحقق الشبكي، بينما تتعلق الثانية بذاكرة تخزين مؤقت قديمة لترجمة العناوين في النظام الفرعي
vhost.CVE-2026-99999 — PwnEscape: تعديل ترويسة IPv4 بعد التحقق
اكتشف باحثون في pwn.ai أن بيانات
CHECKSUM_PARTIAL الوصفية التي يتحكم بها الضيف — skb->csum_start وskb->csum_offset — يمكن أن تجعل skb_checksum_help() يكتب مجموع تحقق في ترويسة IPv4 تم التحقق منها بالفعل.
في سلسلة الاستغلال الموضحة، تعالج النواة في البداية حزمة ذات IHL=5 (20 بايت)، لكن الكتابة المؤجلة تغيّرها إلى IHL=15 (60 بايت). ثم يستخدم ip_do_fragment() طول الترويسة المعدّل ويضمّن 32 بايت من ذاكرة المضيف خارج بيانات sk_buff المنطقية في الأجزاء الصادرة. ينتج التسريب عن عدم تطابق بين الطول المنطقي للحزمة وحجم الترويسة المنسوخة.في بيئة اختبار KVM الخاصة بهم، حوّل الباحثون التسريب إلى كتابة متحكم بها بحجم 64 بايت في ذاكرة النواة ونفّذوا أمرًا بصلاحيات root على المضيف. نجحت السلسلة عبر أربعة اختبارات مستقلة لإعادة التشغيل البارد، لكن المؤلفين احتفظوا بتفاصيل كيفية انتقالهم من التسريب إلى الكتابة لمنشور لاحق.
الالتزام
6785011f8b16، الذي دُمج في الخط الرئيسي للينكس في 14 أكتوبر 2026، يضيف ip_check_csum_start() قبل إكمال مجموع التحقق في خمسة مسارات برمجية لـ IPv4. يمنع الإصلاح الكتابة في ترويسة IPv4 تمت معالجتها بالفعل، لكنه لا يشكل تحققًا شاملًا من بيانات virtio الوصفية لمجموع التحقق الواردة.CVE-2026-74580 — Vghost: ذاكرة IOTLB قديمة والهروب من الجهاز الافتراضي
اكتشف فريق أمان TencentOS أن
vhost في لينكس لا يبطل ذاكرة التخزين المؤقت vq->meta_iotlb[] بعد تغييرات تكوين virtqueue عبر VHOST_SET_VRING_ADDR وVHOST_SET_VRING_NUM.
ونتيجة لذلك، قد يعيد التكوين الجديد استخدام ترجمة IOTLB قديمة دون إعادة التحقق من نطاق العناوين. يُمرَّر المؤشر الناتج إلى raw_copy_to_user() أو raw_copy_from_user()، مما يتيح أوليات قراءة وكتابة الذاكرة.أوضح الباحثون سيناريوهين للهجوم:
• تصعيد الصلاحيات المحلي. مستخدم لديه وصول إلى
/dev/vhost- يسرب عناوين النواة، ويحدد إزاحة KASLR، ويستبدل modprobe_path، وينفّذ تعليمات برمجية بصلاحيات root. أُعيد إنتاج السلسلة الكاملة على Ubuntu 26.04 وRHEL 9.8 وAmazon Linux 2023 وAzure Linux 3.0 وOracle Linux 10.2. على الأنظمة الأربعة الأخيرة، كانت /dev/vhost-vsock تملك صلاحيات 0666، مما جعل الهجوم متاحًا لمستخدم محلي غير مميز. على نظام Ubuntu المختبر، كانت العضوية في مجموعة kvm مطلوبة.
• الهروب من الضيف إلى المضيف. يمكن لجهاز افتراضي ضيف يملك vIOMMU وiommu_platform وVIRTIO_F_RING_RESET إعادة تهيئة virtqueue مع الاحتفاظ بإدخال ذاكرة تخزين مؤقت قديم. يؤدي ذلك إلى كتابة خارج الحدود في كومة QEMU، خارج منطقة ذاكرة الضيف. أوضح الباحثون إفساد بنى QOM والتحكم في مؤشر التعليمات (RIP) لعملية QEMU، لكنهم لم يزعموا إكمال سلسلة استغلال تنفّذ أمرًا بمستوى root على المضيف من الضيف.الالتزام
de845981da67 يبطل ذاكرة التخزين المؤقت للبيانات الوصفية عند تغيّر تكوين virtqueue. أول الإصدارات المصلحة من فروع النواة المستقرة المقابلة هي 5.10.265 و5.15.216 و6.1.183 و6.6.152 و6.12.104 و6.18.45 و7.1.9 و7.2. بالنسبة لنوى التوزيعات، يجب أيضًا النظر في الإصلاحات المدعومة بأثر رجعي.المقال (CVE-2026-99999): https://pwn.ai/blog/pwnescape
المقال (CVE-2026-74580): https://www.openwall.com/lists/oss-security/2026/10/14/2
PoC (CVE-2026-74580): https://github.com/zhangutah/security-research/tree/main/pocs/linux/cve-2026-74580
الثغرات
المورّدون
المنتجات
المزيد