ثغرة أمنية في OpenOffice تسمح بتنفيذ تعليمات برمجية عند فتح ملف

تم التعرف على ثغرة أمنية (CVE-2021-33035) في مجموعة Apache OpenOffice المكتبية التي تسمح بتنفيذ التعليمات البرمجية عند فتح ملف مصمم خصيصًا بتنسيق DBF. وحذر الباحث الذي اكتشف المشكلة من إنشاء ثغرة فعالة لمنصة Windows. يتوفر إصلاح الثغرة الأمنية حاليًا فقط في شكل تصحيح في مستودع المشروع، والذي تم تضمينه في الإصدارات التجريبية لـ OpenOffice 4.1.11. لا توجد تحديثات للفرع المستقر حتى الآن.

سبب المشكلة هو اعتماد OpenOffice على قيم fieldLength وfieldType في رأس ملفات DBF لتخصيص الذاكرة، دون التحقق من تطابق نوع البيانات الفعلي في الحقول. لتنفيذ هجوم، يمكنك تحديد نوع عدد صحيح في قيمة fieldType، ولكن ضع بيانات أكبر وحدد قيمة fieldLength التي لا تتوافق مع حجم البيانات مع نوع عدد صحيح، مما سيؤدي إلى ذيل البيانات من الحقل الذي تتم كتابته خارج المخزن المؤقت المخصص. نتيجة لتجاوز سعة المخزن المؤقت الذي تم التحكم فيه، تمكن الباحث من إعادة تعريف مؤشر الإرجاع من الوظيفة، وباستخدام تقنيات البرمجة الموجهة نحو العودة (ROP - البرمجة الموجهة نحو العودة)، حقق تنفيذ التعليمات البرمجية الخاصة به.

عند استخدام تقنية ROP، لا يحاول المهاجم وضع الكود الخاص به في الذاكرة، ولكنه يعمل على أجزاء من تعليمات الآلة المتوفرة بالفعل في المكتبات المحملة، وتنتهي بتعليمات إرجاع التحكم (كقاعدة عامة، هذه هي نهايات وظائف المكتبة) . يتمثل عمل الاستغلال في بناء سلسلة من الاستدعاءات للكتل المماثلة ("الأدوات") للحصول على الوظيفة المطلوبة. كانت الأدوات الذكية المستخدمة في استغلال OpenOffice عبارة عن تعليمات برمجية من مكتبة libxml2 المستخدمة في OpenOffice، والتي، على عكس OpenOffice نفسه، تم تجميعها بدون آليات الحماية DEP (منع تنفيذ البيانات) وASLR (عشوائية تخطيط مساحة العنوان).

تم إخطار مطوري OpenOffice بالمشكلة في 4 مايو، وبعد ذلك تم تحديد موعد للكشف العام عن الثغرة الأمنية في 30 أغسطس. وبما أن التحديث إلى الفرع المستقر لم يكتمل في الموعد المقرر، فقد أجل الباحث الكشف عن التفاصيل إلى 18 سبتمبر، لكن مطوري OpenOffice لم يتمكنوا من إنشاء الإصدار 4.1.11 بحلول هذا التاريخ. يُشار إلى أنه خلال نفس البحث تم التعرف على ثغرة أمنية مماثلة في كود دعم تنسيق DBF في Microsoft Office Access (CVE-2021–38646)، وسيتم الكشف عن تفاصيلها لاحقًا. لم يتم العثور على مشاكل في LibreOffice.

المصدر: opennet.ru

إضافة تعليق