С виду — картинка, внутри — сценарий для записи на диск. Критическая дыра в Rails оценена в 9,8 балла

leer en español

4376
С виду — картинка, внутри — сценарий для записи на диск. Критическая дыра в Rails оценена в 9,8 балла

Под угрозой могут оказаться ключи, от которых зависит безопасность других систем.

image

Файл под видом изображения может заставить веб-сервер записать данные в выбранное атакующим место. Разработчики Ruby on Rails закрыли критическую ошибку в Active Storage, компоненте для загрузки вложений. Злоумышленнику не требуется учётная запись, если приложение принимает файлы от посторонних пользователей и обрабатывает изображения через ImageMagick.

Команда Rails раскрыла проблему 4 ноября под идентификатором GHSA-f3w6-w445-fwh9. Уязвимость получила критическую оценку 9,8 балла по CVSS 3.0, номер CVE самому дефекту пока не присвоен. При определённой конфигурации Active Storage позволяет записывать файлы в произвольные места, а при локальном хранении вложений ещё и читать доступные приложению данные.

Причина связана с обработчиками форматов ImageMagick. Библиотека определяет обработчик по содержимому файла, а некоторые обработчики способны работать с другими файлами на диске. Active Storage не ограничивал выбор. Специально подготовленный SVG-файл мог активировать обработчик сценариев MSL, который умеет читать и записывать файлы по встроенным инструкциям.

Опасный механизм запускается уже при прикреплении файла. Сайту не требуется создавать миниатюру, предварительный просмотр или отдельно анализировать изображение. Под угрозой приложения, которые принимают файлы от недоверенных пользователей, используют MiniMagick и не запрещают опасные форматы в политике ImageMagick. Штатные настройки Debian и Ubuntu такой блокировки не обеспечивают.

При хранении вложений через Active Storage Disk атакующий может прочитать файлы, доступные процессу приложения. Среди возможных целей находятся secret_key_base, ключи шифрования, пароли баз данных и токены внешних сервисов. Компрометация секретов может открыть путь к удалённому выполнению кода или проникновению в связанные системы, хотя захват сервера не гарантирован.

Ошибка затрагивает Active Storage до 8.0.5.2, а также ветку 8.1 до 8.1.4.1. При настройке load_defaults 6.1 и ниже по умолчанию применяется MiniMagick, а начиная с load_defaults 7.0 обычно используется libvips. Летом другую уязвимость Active Storage с libvips уже начали эксплуатировать на реальных серверах. Подтверждений атак через новый дефект пока нет.

Исправления вошли в Rails 8.0.5.2 и 8.1.4.1. Разработчики добавили политику безопасности, запрещающую MSL, другие опасные обработчики и вызовы Ghostscript. Для работы защиты требуется mini_magick 5.1 или новее. Более старые ветки Rails не поддерживаются, поэтому приложения придётся обновить либо вручную перенести правила в системную конфигурацию ImageMagick.

В новых выпусках Rails исправили в общей сложности 21 проблему безопасности. Разработчики также рекомендуют сменить secret_key_base, мастер-ключ, пароли и токены, если приложение использовало Disk и могло оказаться уязвимым. Установка обновления не делает ранее раскрытые секреты безопасными. Сведения о реальных атаках через GHSA-f3w6-w445-fwh9 в уведомлении отсутствуют.

Рекламодатель
Реклама. АО «Позитив Текнолоджиз». ИНН 7718668887. 18+
Сайт рекламодателя: ptsecurity.com↗️
АО «Позитив Текнолоджиз»