یک آسیب پذیری (CVE-2021-33035) در مجموعه اداری آپاچی اوپن آفیس شناسایی شده است که اجرای کد را هنگام باز کردن یک فایل طراحی شده خاص در قالب DBF امکان پذیر می کند. محققی که این مشکل را کشف کرد در مورد ایجاد یک اکسپلویت کاری برای پلتفرم ویندوز هشدار داد. رفع آسیبپذیری در حال حاضر تنها به صورت یک پچ در مخزن پروژه موجود است که در نسخههای آزمایشی OpenOffice 4.1.11 گنجانده شده است. هنوز هیچ به روز رسانی برای شاخه پایدار وجود ندارد.
این مشکل به دلیل تکیه OpenOffice به مقادیر fieldLength و fieldType در هدر فایلهای DBF برای تخصیص حافظه است، بدون اینکه بررسی کند که نوع داده واقعی در فیلدها مطابقت دارد. برای انجام یک حمله، میتوانید نوع INTEGER را در مقدار fieldType تعیین کنید، اما دادههای بزرگتری را قرار دهید و مقدار fieldLength را تعیین کنید که با اندازه دادهها با نوع INTEGER مطابقت نداشته باشد، که منجر به دم دادهها میشود. از فیلدی که فراتر از بافر اختصاص داده شده نوشته می شود. در نتیجه یک سرریز بافر کنترل شده، محقق توانست نشانگر بازگشتی را از تابع تعریف کند و با استفاده از تکنیک های برنامه نویسی بازگشت گرا (ROP) به اجرای کد خود دست یابد.
هنگام استفاده از تکنیک ROP، مهاجم سعی نمیکند کد خود را در حافظه قرار دهد، بلکه بر روی قطعاتی از دستورالعملهای ماشینی که قبلاً در کتابخانههای بارگذاری شده موجود است، کار میکند و با یک دستورالعمل بازگشت کنترلی خاتمه مییابد (به عنوان یک قاعده، اینها انتهای توابع کتابخانه هستند). . کار این اکسپلویت به ایجاد زنجیره ای از فراخوانی ها به بلوک های مشابه ("گجت ها") برای دستیابی به عملکرد مورد نظر ختم می شود. ابزارهای مورد استفاده در اکسپلویت OpenOffice کدی از کتابخانه libxml2 مورد استفاده در OpenOffice بود که برخلاف خود OpenOffice، بدون مکانیسم های حفاظتی DEP (Data Execution Prevention) و ASLR (Address Space Layout Randomization) کامپایل شده بود.
توسعه دهندگان OpenOffice در 4 می از این مشکل مطلع شدند و پس از آن قرار شد تا در 30 آگوست افشای عمومی این آسیب پذیری انجام شود. از آنجایی که به روز رسانی به شعبه پایدار در تاریخ برنامه ریزی شده تکمیل نشد، محقق افشای جزئیات را به 18 سپتامبر موکول کرد، اما توسعه دهندگان OpenOffice موفق به ایجاد نسخه 4.1.11 تا این تاریخ نشدند. قابل ذکر است که در طی همین تحقیق، آسیب پذیری مشابهی در کد پشتیبانی فرمت DBF در Microsoft Office Access (CVE-2021–38646) شناسایی شد که جزئیات آن متعاقباً افشا خواهد شد. هیچ مشکلی در LibreOffice یافت نشد.
منبع: opennet.ru