Уязвимость в Libreoffice и Openoffice, позволяющая выполнить код при открытии документа
Раскрыты сведения об уязвимости (CVE-2018-16858) в офисных пакетах LibreOffice и Apache OpenOffice, позволяющей выполнить код в системе при открытии специально оформленного документа в формате ОDT.
Проблема вызвана отсутствием необходимых проверок в коде обработки встроенных в документ макросов, которые могут вызывать при наступлении различных событий, таких как наведение мыши на элемент. Используя символы "../" в пути к обработчику злоумышленник может выйти за пределы базовых каталогов со скриптами (share/Scripts/python и user/Scripts/python) и запустить при наступлении события произвольную функцию в любом Python-скрипте.
Для выполнения своего кода использована особенность присутствующего в большинстве дистрибутивов скрипта pydoc.py (в Windows входит в поставку LibreOffice/OpenOffice - python-core-3.5.5&92;lib&92;pydoc.py), в котором определена функция tempfilepager, запускающая любой исполняемый файл с произвольными аргументами через вызов функции os.system. Например, для выполнения калькулятора при наведении ссылки на определенную область в документе достаточно подключить к обработчику события "dom:mouseover" скрипт вида "vnd.sun.star.script:../../lib/python3.5/pydoc.py$tempfilepager(1, galculator )?language=Python&location=share".
Уязвимость без лишней огласки в прошлом году была устранена в выпусках LibreOffice 6.0.7 и 6.1.3. В актуальном выпуске Apache OpenOffice 4.1.6 проблема остается неисправленной. Проблема также еще не устранена в Debian Jessie, Ubuntu 16.04 и SUSE/openSUSE. RHEL/CentOS, а также Ubuntu 18.04+ проблеме не подвержены. Обновление пакетов выпущено для Fedora 28.