К обсуждениям

libreoffice-convert 1.8.2: проверка границ user-controlled fileName

Редакция VOne Технологии

Защитная памятка по libreoffice-convert и GHSA-gmxc-r82q-347r: версия, инвентарь, безопасный обратимый тест, отрицательный контроль, патч, стоп-линия и обезличенный пакет поддержки.

Что подтверждает GHSA-gmxc-r82q-347r

Официальный advisory GHSA-gmxc-r82q-347r / CVE-2026-54732 описывает конкретную границу: управляемый fileName мог содержать обход каталога и привести к записи файла за пределы ожидаемой временной области. Диапазон версий сформулирован так: версии ниже 1.8.2 затронуты; исправление выпущено в 1.8.2. Это подтверждает дефект vendor-компонента, но само по себе не доказывает, что он достижим в конкретной установке. Отделите наличие пакета от достижимости функции: зафиксируйте версию из lock-файла или runtime, включённый модуль и путь данных. Не переносите оценку на соседние продукты только по сходному названию класса уязвимости.

Инвентарь до любого изменения

Снимите минимальный паспорт libreoffice-convert: источник артефакта, точную версию, checksum, способ запуска и включённую функцию, связанную с advisory. Не прикладывайте токены, cookies, IP, полные конфиги и пользовательские данные. Для решения достаточно таблицы «package version | input fileName | resolved path | внутри temp root | файлы снаружи». Если версия не попадает в заявленный диапазон, отметьте not affected by version, но отдельно проверьте backport у поставщика образа. Если версия неизвестна или пакет переупакован, состояние остаётся blocked, а не безопасным по умолчанию.

Обратимый тест и отрицательный контроль

Проверка выполняется только на изолированном стенде и без эксплуатационного payload. План: в пустом временном root передать нормальное синтетическое имя и имя с компонентом parent; первое создаётся внутри, второе отклоняется без файлов снаружи. Сначала запишите baseline на текущей версии, затем тот же fixture на исправленной, после чего повторите baseline либо восстановите snapshot. Положительный контроль доказывает, что штатная функция всё ещё работает; отрицательный — что опасная граница закрыта. Не считайте timeout успехом: он может означать сетевую ошибку, зависание или неверный стенд. Все входы должны быть синтетическими и удаляемыми.

Патч, проверка совместимости и откат

Рабочая последовательность для этого случая: обновить пакет до 1.8.2, генерировать имя на сервере и проверять resolved path относительно изолированного root. Обновляйте внутри поддерживаемой ветки и сверяйте vendor release, а не только номер в manifest. До rollout сохраните резервную копию изменяемого состояния, checksum исходного артефакта и одну команду восстановления. После обновления повторите только релевантные smoke-тесты, проверьте журналы на новые ошибки и подтвердите, что dependency resolver действительно выбрал исправленную сборку. Откат должен возвращать код и данные совместимо, поэтому миграции проверяются отдельно.

Критерий решения, стоп-линия и пакет поддержки

Решение passed возможно, когда установленная версия соответствует исправленной границе, штатный контроль проходит, отрицательный контроль безопасно отклоняется и нет новой ошибки в журнале. Стоп-линия: если временный root не отдельный, процесс имеет права на конфигурацию или имя берётся из production-загрузки. В поддержку передайте только GHSA-gmxc-r82q-347r, версию до и после, обезличенную строку матрицы «package version | input fileName | resolved path | внутри temp root | файлы снаружи», timestamp Europe/Moscow, checksum артефакта и первый релевантный error-class. Не включайте секреты и не утверждайте, что отсутствие воспроизведения доказывает отсутствие риска во всех конфигурациях.

Отдельная модель риска для libreoffice-convert

В этой проверке активом считается именно состояние, которое меняет libreoffice-convert, а доверительной границей — место, где возникает условие «управляемый fileName мог содержать обход каталога и привести к записи файла за пределы ожидаемой временной области». До патча зафиксируйте причинную цепочку своими полями: package version | input fileName | resolved path | внутри temp root | файлы снаружи. Для этого advisory ожидаемый ответ не сводится к зелёному health-check: требуется доказать версию, достижимость конкретной функции и результат отрицательного контроля. Компенсирующая мера до окна обновления — убрать недоверенный вход с этой границы и сократить права процесса. После патча независимым доказательством служат совпавшие checksum артефакта, vendor-версия и строка fixture-наблюдения, а не отсутствие жалоб. Для libreoffice-convert используйте отдельный uid без доступа к конфигурации и проверяйте directory file descriptor; нормализация строки пути без ограничения прав процесса оставляет лишний ущерб. Особенность конвертера — входное имя не обязано совпадать с именем конечного документа: сервер может выдать собственный UUID, а исходный суффикс хранить только как метаданные. Проверяйте создание через заранее открытый descriptor временного каталога и запрещайте абсолютные пути, parent-компоненты, separator в basename и неожиданные расширения. После неуспешного вызова сравните снимок родительского каталога, очередь LibreOffice и оставшиеся временные процессы; пустой HTTP-ответ не доказывает отсутствия записи. Удаление fixture выполняется только по сохранённому inode внутри выделенного root.

Материал подготовлен редакцией VOne с помощью ИИ по открытым официальным и первичным источникам; факты, версии и ссылки перепроверены. Реальные пользовательские данные и вымышленные результаты тестов не использовались.

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

Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.

Ответы

0 опубликовано
Ответов пока нет. Вы можете начать обсуждение.

Ваш ответ

Добавьте свой опыт или уточнение по теме.

Вы публикуете как Аноним Аватар отличает разговоры, но не раскрывает личные данные.

Ответ появится сразу. Не публикуйте личные данные, ключи и приватные ссылки.