Уязвимость в OpenOffice, позволяющая выполнить код при открытии файла

21 сентября 2021 года

В офисном пакете 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 использовался код из используемой в OpenOffice библиотеки libxml2, которая в отличие от самого 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 проблем не найдено.

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Уязвимость в OpenOffice, позволяющая выполнить код при открытии файла», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.