Вразливість у OpenOffice, що дозволяє виконати код під час відкриття файлу

В офісному пакеті Apache OpenOffice виявлено вразливість (CVE-2021-33035), що дозволяє досягти виконання коду при відкритті спеціально оформленого файлу у форматі DBF. Дослідник, що виявив проблему, попередив про створення робочого експлоїту для платформи Windows. Виправлення вразливості поки що доступне лише у формі патча в репозиторії проекту, який увійшов до складу тестових збірок OpenOffice 4.1.11. Оновлення для стабільної гілки поки що не сформовано.

Проблема викликана тим, що при виділенні пам'яті OpenOffice покладався значення fieldLength і fieldType в заголовку файлів DBF, не перевіряючи при цьому відповідність фактичного типу даних в полях. Для здійснення атаки можна вказати у значенні fieldType тип INTEGER, але розмістити дані більшого розміру та вказати значення fieldLength не відповідне розміру даних c типом INTEGER, що призведе до того, що хвіст даних із поля буде записаний за межі виділеного буфера. В результаті контрольованого переповнення буфера досліднику вдалося перевизначити покажчик повернення з функції та за допомогою прийомів зворотно-орієнтованого програмування (ROP - Return-Oriented Programming) домогтися виконання свого коду.

При використанні техніки 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

Додати коментар або відгук