Критическая уязвимость в Ruby on Rails ставит под пристальное внимание все загрузки изображений

Rails Cve-2026-66066 Active Storage Libvips Rce уязвимость csoonline.com

Критическая уязвимость CVE-2026-66066 в Ruby on Rails (оценка 9.5) позволяет через загрузку изображения читать файлы и выполнять код. Немедленно обновите Rails до версий 7.2.3.2, 8.0.5.1 или 8.1.3.1, смените secret_key_base и проверьте логи на предмет утечки данных.

Новая критическая уязвимость в веб-фреймворке Ruby on Rails («Rails»), CVE-2026-66066, может превратить безобидное на вид изображение в открытую дверь к вашим секретам.

Обнародованная 30 июля, эта уязвимость высокого уровня опасности (оценка 9,5 из 10) представляет значительный риск для предприятий, использующих приложения, работающие с загружаемыми пользователями изображениями в Rails.

Получившая название «KindaRails2Shell», она нацелена на чрезмерно доверчивый компонент Active Storage этого фреймворка с открытым исходным кодом, позволяя неаутентифицированным злоумышленникам читать конфиденциальные файлы или переходить к удаленному выполнению кода (RCE).

Проблема исправлена в версиях Active Storage 7.2.3.2, 8.0.5.1 и 8.1.3.1; предприятиям, использующим Rails, следует немедленно выполнить обновление.

«Изюминка в том, что злоумышленник может загрузить изображение, которое на самом деле не является изображением, а представляет собой код, позволяющий похитить секреты», — отметил Дэвид Шипли из Beauceron Security.

Злоумышленники получают ключ от замка

Ruby on Rails — это серверный фреймворк с открытым исходным кодом, используемый для создания полнофункциональных веб-приложений и интерфейсов прикладного программирования (API).

Он популярен среди разработчиков благодаря масштабируемости, простоте изучения и использования, поддержке быстрой разработки приложений, активному сообществу из более чем 1000 инженеров, занимающихся его развитием и поддержкой, а также обширной библиотеке готового кода объемом почти два миллиона строк.

CVE-2026-66066 нацелена конкретно на встроенный компонент Rails Active Storage, который позволяет пользователям загружать файлы в облачные сервисы или на локальные диски и связывать их со своими приложениями. В частности, уязвимость использует то, как Active Storage взаимодействует с библиотекой обработки изображений libvips для генерации изображений.

Libvips содержит так называемые «нефаззированные» операции, которые не были защищены от вредоносных входных данных с помощью методов, известных как фаззинг, проверяющих, где они дают сбой, утекают данные или ведут себя нестабильно. Это делает их небезопасными для использования с ненадежным контентом, но Active Storage не отключает их должным образом.

«CVE-2026-66066 особенно опасна, потому что злоумышленнику может не понадобиться учетная запись или привилегированный доступ», — объяснил Энсар Шекер, директор по информационной безопасности SOCRadar.

Злоумышленники могут использовать небезопасный конвейер, загружая специально созданные файлы, которые обманом заставляют Active Storage предоставлять им доступ к файлам, к которым разрешен доступ процессу Rails, включая даже высокочувствительные файлы в средах обработки приложений.

На практике это может привести к раскрытию переменных окружения, секретов приложения Rails, учетных данных базы данных, ключей доступа к облаку, API-токенов и учетных данных для подключенных сервисов, пояснил Шекер.

Злоумышленники также могут получить доступ к secret_key_base, который подписывает и шифрует файлы cookie, учетные данные и данные сессий. Когда secret_key_base скомпрометирован, злоумышленники фактически получают ключ к приложению.

«Непосредственная уязвимость — это проблема произвольного чтения файлов, но кража таких секретов, как secret_key_base Rails, может превратить раскрытие информации в гораздо более масштабную компрометацию», — сказал Шекер.

В зависимости от приложения злоумышленники потенциально могут подделать доверенные данные приложения или сессии, получить доступ к базам данных и облачным сервисам, переместиться латерально в подключенные системы или добиться RCE.

Именно этот путь эскалации делает уязвимость критической, отметил Шекер. «Казалось бы, рутинная функция загрузки изображений, такая как аватар, профильная фотография или генератор миниатюр, может стать точкой входа в инфраструктуру приложения».

Как определить, уязвимы ли вы

Приложения подвержены риску, если они настроены на использование libvips для обработки изображений в Active Storage (поведение по умолчанию с Rails 7.0) и принимают загрузку изображений от ненадежных или неаутентифицированных пользователей. Шекер советует предприятиям проверить каждое внутреннее и стороннее приложение, чтобы определить, настроены ли они таким образом, и немедленно установить исправления для Rails и Active Storage. Также следует проверить все функции, принимающие изображения, включая аватары, вложения в службу поддержки, изображения товаров и административные функции загрузки.

Одного обновления Rails недостаточно, если под ним остается старая установка libvips; версия libvips должна быть 8.13 или новее, сказал он.

Рекомендации по криминалистическому анализу и инструментарий от проекта Rails могут помочь предприятиям определить, уязвимы ли приложения или файлы могут быть использованы, отметил Шекер. Также важно проверить журналы приложений, прокси, объектного хранилища и обработки изображений на предмет подозрительных загрузок или необычных запросов.

Кроме того, администраторам следует сменить secret_key_base и все остальные учетные данные, доступные в Rails, аннулировать активные сессии и проверить нижестоящие системы на предмет потенциально скомпрометированных учетных данных.

«Команды безопасности должны рассматривать это как потенциальный инцидент с утечкой секретов, а не просто как упражнение по управлению исправлениями», — сказал Шекер.

Не доверяйте конвейерам обработки изображений

Сложные библиотеки изображений поддерживают множество форматов и полагаются на многочисленные парсеры и сторонние компоненты, создавая обширную поверхность атаки, отметил Шекер. Поэтому библиотеки «следует рассматривать как территорию недоверенного выполнения кода».

Обработку изображений следует изолировать в выделенных песочницах, контейнерах или ограничить рабочими процессами с минимальным доступом к файловой системе, посоветовал он. Не должно быть ненужного сетевого подключения или доступа к файлам или секретам приложения. Следует применять строгие белые списки, проверять содержимое файлов вручную, сканировать загрузки перед обработкой и хранить их вне каталогов приложения.

Дополнительные меры контроля должны включать недолговечные и узко ограниченные учетные данные, ограничения исходящего сетевого трафика, мониторинг зависимостей и состава программного обеспечения, а также автоматические тесты, подтверждающие, что опасные кодеки или операции отключены после обновления, сказал Шекер.

«Более широкий урок заключается в том, что организации не могут оценить подверженность риску, просто спросив, используют ли они Rails», — отметил он, указав, что два приложения, работающие на одной и той же версии Rails, могут иметь совершенно разную степень риска в зависимости от их процессора изображений, путей загрузки и пакетов операционной системы. Это делает критически важным понимание конфигурации времени выполнения, библиотек и функциональности приложения.

Этот инцидент также демонстрирует важность ротации секретов при реагировании на уязвимости, добавил он. «Когда уязвимость позволяет произвольный доступ к файлам, установка исправления закрывает точку входа, но не отзывает учетные данные, которые уже могли быть скопированы».

Не думайте, что вы в безопасности

Эта уязвимость является идеальным примером использования спецификации программного обеспечения (SBOM), которая может ускорить обнаружение уязвимого программного обеспечения и его сортировку, отметил Шипли из Beauceron. Предприятия также могут внедрить интеллектуальный мониторинг и вмешательство веб-приложений (WAF) в дополнение к изоляции систем и установке исправлений.

«Слова, которые вы никогда не хотите слышать в контексте любой критической уязвимости, — это “произвольное выполнение кода” и “удаленное выполнение кода”», — сказал он. «Любое из них может означать плохие новости».

Что также интересно, так это то, что процесс раскрытия информации был захвачен, указал он. Rails опубликовал технические подробности об уязвимости и инструменты криминалистического анализа для оценки уязвимости приложения и поиска признаков утечки данных почти на месяц раньше запланированного срока, поскольку несколько исследователей восстановили атаку и опубликовали proof of concept код.

Тот факт, что proof of concept теперь доступны, «существенно увеличивает вероятность оппортунистического сканирования и попыток эксплуатации», отметил Шекер.

Поэтому, сказал он, «даже организации, не видящие очевидных признаков компрометации, не должны предполагать, что одно лишь исправление устраняет риск, созданный ранее раскрытыми секретами».

Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.

В тренде:


Похожие новости: