Раскрыты (https://insert-script.blogspot.com/2019/02/libreoffice-cve-2...) сведения об уязвимости (CVE-2018-16858 (https://www.libreoffice.org/about-us/security/advisories/cve.../)) в офисных пакетах LibreOffice и Apache OpenOffice, позволяющей выполнить код в системе при открытии специально оформленного документа в формате ОDT.
Проблема вызвана отсутствием необходимых проверок в коде обработки встроенных в документ макросов, которые могут вызываться при наступлении различных событий, таких как наведение мыши на элемент. Используя
символы "../" в пути к обработчику злоумышленник может выйти за пределы базовых каталогов со скриптами (share/Scripts/python и user/Scripts/python) и запустить при наступлении события произвольную функцию в любом Python-скрипте.
Для выполнения своего кода использована особенность присутствующего в большинстве дистрибутивов скрипта pydoc.py (в Windows входит в поставку LibreOffice/OpenOffice - python-core-3.5.5\lib\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 проблема остаётся (https://www.openoffice.org/security/bulletin.html) неисправленной. Проблема также ещё не устранена в Debian Jessie (https://security-tracker.debian.org/tracker/CVE-2018-16858), Ubuntu 16.04 (https://people.canonical.com/~ubuntu-security/cve/2018/CVE-2...) и SUSE/openSUSE (https://www.suse.com/security/cve/CVE-2018-16858/).
RHEL/CentOS (https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2018-16858), а также Ubuntu 18.04+ проблеме не подвержены. Обновление пакетов выпущено для Fedora 28 (https://bugzilla.redhat.com/show_bug.cgi?id=1672002).
URL: https://insert-script.blogspot.com/2019/02/libreoffice-cve-2...
Новость: https://www.opennet.dev/opennews/art.shtml?num=50095
> Проблема также ещё не устранена в Debian Jessie, Ubuntu 16.04 и SUSE/openSUSEДа зачем им новые версии, за циферками только гнаться
В openSUSE Libreoffice 6.2.0.3, проблемы в 6.2 не могло быть изначально.
Не понимаю, зачем автор изначальной статьи упомянул об openSUSE поставив её в один ряд с deb-подобными.
что мешает слить и поставить оф дебы с сайта либры ?
Нежелание использовать либру? ОО рулит.
зачем вообще в документах макросы? Чтоб нескучно было? Документы - чтобы документировать, а не программировать. "Программирую в либреоффисе", бл976.
>зачем вообще в документах макросы? Чтоб нескучно было?Молодой человек предлагает плодить exe-шники на каждый бехгалтерский чих?
А неплохая идея так то.Шаблонизатор (2 шт.: для документа и для вебморды) + golang = готовый документ на выходе.
> А неплохая идея так то.
> Шаблонизатор (2 шт.: для документа и для вебморды) + golang = готовый
> документ на выходе.Поздравляю, ты только что изобрёл макросы.
А почему бы не сделать макрос в отдельном файле? Да ещё потребовать бит исполняемый для файла с макросами?Ну так, к примеру.
> А почему бы не сделать макрос в отдельном файле? Да ещё потребовать
> бит исполняемый для файла с макросами?А по Аське или МайлРуАгенту как передавать? По отдельности? На vk, опять же, макрос не залить. Они ж и нужны для того, чтобы быть в одном файле с документом и уметь работать на любом офисном пакете.
>> А почему бы не сделать макрос в отдельном файле? Да ещё потребовать
>> бит исполняемый для файла с макросами?
> А по Аське или МайлРуАгенту как передавать? По отдельности? На vk, опять
> же, макрос не залить. Они ж и нужны для того, чтобы
> быть в одном файле с документом и уметь работать на любом
> офисном пакете.Если тебе надо передавать с макросами, то по отдельности, если без макросов, то только данные.
И никаких проблем с вирусами.
О мой юный неофит, в твоих словах безусловно имеется толика смысла, но макросы такой рудимент, что он существует не иначе как дань традициям. В былые времена было очень популярно подключаться из excel/word к БД и делать выгрузку с обработкой на клиенте. Я ещё каких-то лет 10 назад сам подобным занимался. У меня была база на mysql, а в Word шаблон с полями + VBA. И если когда-то я часами просиживал за отчётом, то после внедрения это облегчило мой труд в разы. Собственно говоря, не стоит забывать, что человек-бухгалтер или человек-менеджер так же далёк от мира макросов и исполняемых битов как морская свинка от моря и свиней.
ты-кать будешь своим знакомым, умник
> ты-кать будешь своим знакомым, умникТы чё, Вась? Не похмельнулся с утреца?
>бехгалтерский чихбехгалтера нужны исключительно для выдачи з/п.
тот кто их использует как-то иначе - параноик. imho, конечно. И шутка, если кто не поянл.
Я когда-то сделал полуавтоматическое "восстановление буквы ё" в открытом документе MS Word. Потому что это нужно именно в открытом документе, чтобы всегда было у корректора под рукой, а не в отдельной программе. Иначе на пустом месте начинаются пляски с форматированием.
И куча корректорских задач решается до сих пор на VBA именно по этой причине.
Никогда не говори "никогда" :)
Нужность буквы "ё" под большим сомнением с самого момента выдумывания этой нескучной буквы. ("Щоб було как у французов, алфавит с диакритическими знаками!11")
Эта буква неотъемлемая часть современного русского языка и её нужность не вызывает никаких сомнений. Ты ещё усомнись в реформе 1918 и требуй вернуть ять и твёрдый знак на конце слова.
Ять, млять
Неотъемлимость спорна. Если поставить целью убрать из русского редко используемые буквы, то "ё" (е), щ (сч) - первые на вылет. Их использование минимально, местным безразлично, детям и иностранцам язык учить будет проще.Твёрдый знак в конце некоторых слов предлагается вернуть, это напр. позволить разделить на письме два значения слова "мир", см. дореволюционные: мир, мiръ.
Ять хотел выкинуть ещё Пётр 1, но ему привели примеры где он используется. К 1918 году "ять" полностью слился с "е". Сейчас аналогичная ситуация происходит с "о": в безударной позиции она превращается в "а" (в белорусском эта норма узаконена), см. напр. произношение "молоко" в разных падежах в разговорной речи. Сейчас это звучит несколько необычно, но лет через 100-200 использование буквы "о" в русском сильно сократиться вплоть до её исключения из языка.
Оставь ё в покое для учебных материалов. Это человекам уже знающим словам и без точек над е понятно как читать еж, елка, орел, пленка и т.д. А изучающим будь то дети или иностранцы еще вагон и тележка кучу слов запоминать в качестве исключений.
То есть вместо Орёл надо писать Орел? С чего бы это? При чём тут изучение/обучение?
Моим приложением до сих пор народ пользуется, в частности профессиональные корректоры в редакции. Вывод - буква нужна :)
Но изначально речь была не о ней. А, о существовании задач, для которых отдельные приложения крайне неудобны. Корректору нужно работать, ему нужно прежде всего удобство, а не переключение между приложениями и борьба с форматами.
Насчёт диакритических знаков - советую посмотреть на древнерусские летописи.
Тебя ждёт много удивительных открытий.
Ичо, будем писать йожик и йолка?
Пошто символы переводить?
Но это ведь не требует скрипта в документе, этот скрипт вероятно удобнее поставить в систему? Ну, чтобы он был бы доступен для всех документов.И мне честно говоря неясно, какие именно скрипты может быть полезным внедрять в odt. Скрипты внедрённые в ods я могу понять. А в odt чёт не очень.
Нет. В MS Word макросы вроде моего просто встраиваются в шаблон запуска Normal.dotm и всегда доступны. Конкретный документ здесь не при чём - макросы применяются к содержимому любого открытого документа.
По-моему, в ООО- и Libra-Office всё то же самое.
Что внедрять? Смотря куда ;)
Если в конкретный документ, то это глупость какая-то - здесь правильно написали про самопальные бухгалтерии и склады на основе электронных таблиц... Я не сталкивался с вменяемыми задачами для макросов в электронных таблицах.
А вот использовать текстовый процессор не только как пишущую машинку - самое оно. Замена английских кавычек "" на русские «», изменение интервала текста, исправление использования дефиса вместо тире, то же "восстановление ё"... у корректоров таких заморочек - вагон и тележка... Всё это делается и стандартными средствами, но там слишком много мороки. А тут - ОДНА кнопка для макроса - и задача решена.
ч0рт ! жду ООО 4.1.7 :(
Есть 4.5, правда в development builds :)))
"особенность присутствующего в большинстве дистрибутивов скрипта pydoc.py (также входит в поставку LibreOffice для Windows - python-core-3.5.5\lib\pydoc.py), в котором определена функция tempfilepager(), запускающая любой исполняемый файл с произвольными аргументами через вызов функции os.system()"
Ай, молодцы!
это они себе кувалду на ногу уронили)) такие вещи обычно хотя бы ограничивают возможными аргументами. но видно было лень допиливать.
А что кто-то может прислать файлик в формате ODT? Я думал это что-то вроде локального низкоуровневого файлового кэша)). Описан какой-то не реальный кейс (по крайне мере в кириллицаписной стране).
Я могу прислать.
Вот именно. Стандарт де-факто в рф - мсофис и докх. Всякие одт и либры - даже не проценты, а промилле, на уровне погрешности.Так что кейс нереальный еще с пункта "прислать одт файл", лол!
Дурашка... Когда тебе его пришлют, тогда ты нам и расскажешь, что этого не могло быть.
> Когда тебе его пришлютПод видом JPEG или PNG файла...
Но у меня нет LO/OOO, а только MSO, который безбажный. Твой хитрый план провалился!
> в кириллицаписной стране
В шестой версии вордпроцессора либры глючит xneur -- содержимое перекодируемого текста портится.
В Ворде аналогичный функционал считают фичей, а не уязвимостью, и исправлять не собираются.
Можно пруф на аналогичную фишку в ворде?
Чтобы без спроса при открытии документа запустилось.
https://xakep.ru/2017/10/13/microsoft-office-dde/
> Можно пруф на аналогичную фишку в ворде?
> Чтобы без спроса при открытии документа запустилось.ты смеешься, что-ли? Мы пихали DisableAutoRun() (вроде, так? ) в normal.dot еще в 1993м году. Каких тебе нахрен пруфов, интернет тогда был только у белых людей, а гугли твоей вообще не было.
А что макросы выпоняются по умолчанию без запроса пользователя? Вроде в мсофисе даже не так.
По умолчанию макросы отключены
В офисе документ можно поместить в стартовую папку (для этого не нужны права администратора), и он будет выполнен в любом случае. Если учесть, что из такого документа можно осуществить любой вызов, хоть код на Си или ассемблере ...
Макросы всегда там были, ещё в СтарОфе. И три уровня безопасности, один из них - полное неисполнение.
Если документ пришёл извне, какие могут быть запуски макросов??
О чём в исходной новости столько шуму, не пойму.
> И три уровня безопасности, один из них - полное неисполнение. О чём в исходной новости столько шуму, не пойму.Речь о запуске исполняемого кода без спроса. По ссылке всё написано.
И даже если у тебя в настройках самое жёсткое правило будет стоять по макросам - это не поможет.
>> И три уровня безопасности, один из них - полное неисполнение. О чём в исходной новости столько шуму, не пойму.
> Речь о запуске исполняемого кода без спроса. По ссылке всё написано.
> И даже если у тебя в настройках самое жёсткое правило будет стоять
> по макросам - это не поможет.Нет, речь о запуске чего угодно в системе из макроса. По ссылке всё написано, начиная с заголовка. Так что пункт 1.
И? Какая разница из чего запускается, если это без спроса делается при открытии документа.
Вот заголовок> Remote Code Execution via Macro/Event execution
Два слова Macro/Event.
Там POC на файл со скриптом при dom:mouseover (это практически гарантировано будет у 99.9% пользователей).
Может если кто-то прям чисто клавиатурой пользуется, то пронесёт конкретно в этом случае :D
Тем более что в конце POC именно для 6.1.x> При атаке на LibreOffice 6.1.x можно использовать системный скрипт pydoc.py для выполнения произвольных файлов с любыми параметрами.
> pydoc.py$tempfilepager(1, calc.exe)Не понятно из-за чего шум? Серьёзно?
> Тем более что в конце POC именно для 6.1.x
>> При атаке на LibreOffice 6.1.x можно использовать системный скрипт pydoc.py для выполнения произвольных файлов с любыми параметрами.
>> pydoc.py$tempfilepager(1, calc.exe)
> Не понятно из-за чего шум? Серьёзно?Серьёзно-пресерьёзно. Всегда пользовался в *своих* макросах питоном именно для исполнения чего угодно из системы, но какой лопух запускает *чужие* макросы?? В нашем частном случае разговор, что средства "оживления" документа способны залезть куда не надо -- а вы чего ждали? да ещё в кейсе с использованием питона?
Не надо ничего самому запускать. Достаточно документ открыть.
Ты хоть бы прочитал, а... Про попробовать, я уж молчу.
> Не надо ничего самому запускать. Достаточно документ открыть.
> Ты хоть бы прочитал, а... Про попробовать, я уж молчу.Вот ты бы лучше сам поинтересовался техникой макросов в ООО.
Я то знаю, а ты нет.
Речь про уязвимость в неправильной обработке.Если при открытии документа спрашивается "Запустить макрос - это может быть опасно? Да/Нет", то в случае вредноносного макроса - это не бага, а фича.
Ну а если оно само запускается - это уязвимость. И по другому быть не может.
Даже установка в настройках опции "Безопасность макросов: Очень высокий".
Не поможет против данной уязвимости.
Если ты не понимаешь, что в программах могут быть ошибки, то тут уж...
> Даже установка в настройках опции "Безопасность макросов: Очень высокий".
> Не поможет против данной уязвимости.Потому что в данной уязвимости речь о возможности *нештатной* работы, вундер.
> *нештатной* работыСпасибо, КЭП. Ну и к чему тогда фраза?
> О чём в исходной новости столько шуму, не пойму.
>Проблема вызвана отсутствием необходимых проверок в коде обработки встроенных в документ макросовТо есть макросы не выключены? По-моему макросы обязаны быть выключенными по-умолчанию.
>глючит xneurxneur вообще ффтoпку. Нейросеть нуждается в полной переделке архитектуры и перетренировке на нормальном дейтасете.
>Уязвимость без лишней огласкиНу вот и вирусы в
Вот читаю и думаю: как же далеко большая часть айтишников оторвалась от простого народа и его функций, проблем, потребностей. И макросы-то никому не нужны, и гостовский ODT - в природе не встречается. И даже "ё" досталось. Как еще Python не обвинили во всех тяжких? - ума не приложу...Макросы работают везде - в рекламных агентствах, конструкторских бюро, в типографиях. Любой серьезный прикладной софт поддерживает макросы. Тот же VBA есть помимо MSO еще и в AutoCAD, CorelDraw...
Чтобы разговор поддержать - обычный XLS/XLSM/XLSB-файл с VBA-маскросом с именем AutoOpen, сохраненный как XLA/XLAM - сработает при открытии не то-что "заряженного" документа, а просто при любом открытии приложения Excel. И все галочки из вкладки "Безопасность MSO" - даже не шевельнутся как-то тормозить выполнение VBA-макроса.