Критическая уязвимость Rails открывает файлы сервера через загрузку изображений
Что произошло
Разработчики Ruby on Rails выпустили экстренное исправление для критической уязвимости в Active Storage. Ошибка с идентификатором CVE-2026-66066 получила оценку 9.5 по шкале CVSS. Она позволяет неавторизованному злоумышленнику читать произвольные файлы на сервере приложений.
Атака возможна через специально подготовленную загрузку изображений. Уязвимость затрагивает конфигурации, где Active Storage использует библиотеку libvips для обработки картинок. Rails выбирает Vips по умолчанию начиная с load_defaults 7.0, и более поздние версии сохраняют это поведение.
Масштаб угрозы
Уязвимость может раскрыть чувствительные данные процесса Rails: secret_key_base, мастер-ключ Rails, пароли баз данных, учётные данные облачных хранилищ и API-токены. Эти секреты способны привести к удалённому выполнению кода (RCE) или боковому перемещению в связанные системы.
Исследователи из Ethiack и GMO Flatt Security определили следующие затронутые диапазоны:
- Rails 7.0.0 – 7.2.3.1
- Rails 8.0.0 – 8.0.5
- Rails 8.1.0 – 8.1.3
- Rails 6.0.0 – 6.1.7.10 (только при ручном включении Vips)
Приложения, использующие MiniMagick вместо Vips, не подвержены этому конкретному вектору атаки. Однако Rails 7.0 и 7.1 уже не поддерживаются и не получат исправлений — необходим переход на ветку 7.2.3.2 или новее.
«Генерация вариантов не является отдельным требованием», — пояснили в команде Rails, комментируя механизм эксплуатации уязвимости.
Как защититься
Разработчикам настоятельно рекомендуется обновить Rails до версий 7.2.3.2, 8.0.5.1 или 8.1.3.1. После установки патча необходимо сменить все секреты, доступные процессу приложения: secret_key_base, мастер-ключ, пароли БД, ключи облачных сервисов и сторонние токены.
Пропатченные инсталляции требуют libvips 8.13 или выше, а при наличии ruby-vips — версии 2.2.1 или выше. Сам патч вызывает Vips.block_untrusted(true) при старте Active Storage.
Если немедленное обновление Rails невозможно, администраторы могут установить переменную окружения VIPS_BLOCK_UNTRUSTED (для libvips ≥ 8.13) или явно вызвать Vips.block_untrusted(true) в коде (при ruby-vips ≥ 2.2.1). Более старые версии libvips не поддерживают блокировку опасных операций — их необходимо обновить или удалить.
По состоянию на 29 июля 2026 года публичных эксплойтов обнаружено не было. Уязвимость отсутствует в каталоге Known Exploited Vulnerabilities CISA. Точное количество уязвимых инсталляций не называется, однако проблема затрагивает любое приложение на Rails с включённым Vips и принимающее загрузки изображений от недоверенных пользователей.
Технические детали атаки планируется раскрыть не позднее 28 августа 2026 года. Исследователи — André Baptista, Bruno Mendes, Rafael Castilho (Ethiack) и RyotaK (GMO Flatt Security) — пока не публиковали код эксплуатации и цепочку RCE.
Читайте также: Что такое компьютерный вирус: виды, принципы работы и защита
Источник: The Hacker News
