باحثو الأمن في سيسكو
يمكن استغلال الثغرة الأمنية لتنفيذ تعليمات برمجية في موقف يستطيع فيه المهاجم تنظيم تكوين قيمة سالبة للمتغير الذي يتم من خلاله نقل حجم البيانات المنسوخة (على سبيل المثال، سيصبح سلبيًا عند نقل أكثر من 2 جيجابايت من البيانات) البيانات، ولكن أثناء الهجوم، لتجاوز حدود المخزن المؤقت، تحتاج إلى نقل ما لا يقل عن 4 جيجابايت). تُستخدم وظيفة memcpy() على نطاق واسع في التطبيقات، كما أن معالجات ARMv7 شائعة في أنظمة السيارات والأجهزة المحمولة والصناعية والاستهلاكية والاتصالات والأجهزة المدمجة، والتي من المحتمل أن تكون عرضة للهجمات باستخدام Bluetooth وHD Radio/DAB وUSB وCAN bus و شبكة Wi-Fi يمكن مهاجمة مصادر البيانات الخارجية الأخرى (على سبيل المثال، الخدمات والتطبيقات التي يمكن الوصول إليها عبر الشبكة والتي تقبل بيانات الإدخال دون قيود الحجم).
ومن الأمثلة على ذلك إنشاء استغلال عملي لمهاجمة خادم HTTP مدمج في أنظمة معلومات السيارات، ويمكن الوصول إليه عبر شبكة Wi-Fi للسيارة. يمكن لمهاجم خارجي استغلال ثغرة memcpy على هذا الخادم عن طريق إرسال طلب GET كبير جدًا والحصول على حق الوصول إلى الجذر للنظام.
في أنظمة 32 بت x86، لا تظهر المشكلة، نظرًا لأن تطبيق memcpy لهذه البنية يفسر بشكل صحيح متغير الحجم كقيمة عددية غير موقعة من النوع size_t (في لغة التجميع
يتلخص الإصلاح في استبدال استخدام تعليمات التجميع التي تعمل على المعاملات الموقعة (bge وblt) بنظيراتها غير الموقعة (blo وbhs).
لم يتم حل المشكلة بعد
المصدر: opennet.ru