
تجارب متعلقة بـ CVE-2015-3456
يوجد:
exploit/ هو "استغلال" (يؤدي فقط إلى تعطيل QEMU).mock/ يحتوي على نسخة مجردة من QEMU. فقط الثغرة الأمنية بقيت.patch/ يحتوي على برنامج لتصحيح نسخة قيد التشغيل من QEMU. الفكرة الرئيسية هي عدم الحاجة إلى رموز التصحيح (debug symbols)، ولا الملف التنفيذي الأصلي على القرص. لذلك، يجب توفير بعض المعلومات لكي يعمل هذا البرنامج كما هو متوقع.الفكرة الرئيسية حول التصحيح المباشر (live patching) هي تعديل مصفوفة command_to_handler لجعل كل أمر يشير إلى دالة "غير منفذة". بينما تتوقف العملية جزئياً بواسطة ptrace (فقط الخيط الرئيسي)، يبدو هذا وسيلة آمنة لإصلاح الثغرة (طالما لا تمانع أن وحدة تحكم القرص المرن لم تعد تعمل).
يعمل هذا النوع من التصحيح لأن command_to_handler هو متغير ساكن غير مهيأ، وبالتالي ينتهي به المطاف في مقطع BSS القابل للكتابة. أيضاً، باستثناء PIE، يكون موضع هذا المقطع في الذاكرة معروفاً في وقت الترجمة. للأسف، عادةً ما يتم ترجمة QEMU كـ PIE، وبالتالي ليس هذا هو الحال.
بطبيعة الحال، استخدم على مسؤوليتك: تعديل عملية قيد التشغيل قد يسبب فوضى في العالم!
مزيد من المعلومات التفصيلية متاحة هنا: http://vincent.bernat.im/en/blog/2015-hotfix-qemu-venom.html
لفهم التصحيح المباشر بشكل أفضل، إليك بعض الروابط: