Ruby on Rails пусна корекции за критична уязвимост в Active Storage, която може да позволи на неудостоверени атакуващи да четат произволни файлове от сървърите на приложенията чрез специално подготвени качвания на изображения.

Проследявана като CVE-2026-66066 (оценка по CVSS: 9.5), уязвимостта може да разкрие средата на Rails процеса и тайни като secret_key_base, главния ключ на Rails (master key), пароли за бази данни, идентификационни данни за съхранение в облака и API токени. Тези тайни могат да позволят отдалечено изпълнение на код (RCE) или странично движение (lateral movement) в свързани системи.

Засегнатите приложения използват libvips за обработка на изображения в Active Storage и приемат качвания на изображения от недоверени потребители. Rails избира Vips по подразбиране при настройките на load_defaults 7.0 и по-нови версии.

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 са засегнати само когато Active Storage е конфигуриран да използва Vips, което не беше процесорът по подразбиране в Rails 6.

Официалното предписание посочва по-широк диапазон на пакета: activestorage < 7.2.3.2. И двата изследователски екипа локализират практическия вектор на атака през Vips в Rails 6.0 и по-нови версии. Приложенията, използващи MiniMagick, не са изложени на този конкретен вектор на атака. Версиите Rails 7.0 и 7.1 са в края на жизнения си цикъл (end of life) и нямат версии с корекции, така че приложенията на тези клонове трябва да се обновят до Rails 7.2.3.2 или по-нова версия.

Администраторите трябва да извършат обновяване до Rails 7.2.3.2, 8.0.5.1 или 8.1.3.1 и да подменят всяка тайна, която може да е била прочетена от процеса на приложението. Коригираните инсталации изискват libvips 8.13 или по-нова версия, а когато е инсталиран ruby-vips – версия 2.2.1 или по-нова.

Към 17:30 UTC на 29 юли 2026 г. нито един от изследователските екипи не беше публикувал доказателство за концепция (PoC). Търсенията по точни термини от страна на The Hacker News не откриха хранилище с експлойт в индексираните резултати на GitHub, GitLab, Exploit-DB или Packet Storm по същото време. Rails предупреди, че инсталирането на корекции за сигурност не анулира идентификационните данни, които може вече да са били откраднати.

Уязвимостта се намира на границата на доверие между Active Storage и libvips. Препоръката за сигурност на Rails посочва, че libvips поддържа модули за зареждане, запазване и други операции, някои от които се поддържат от библиотеки на трети страни и са маркирани като „непроверени“ (unfuzzed) или „недоверени“ (untrusted), тъй като не са безопасни за злонамерено въведени данни. Active Storage не ги е блокирал, което позволява на подготвено качване да ги извика и да разкрие файлове, четими от работния процес (worker) на Rails.

Уязвимото приложение не се нуждае от изложена специална операция за преоразмеряване или генериране на миниатюри. „Генерирането на варианти не е отделно изискване“, заявяват от Rails. Публикуваната корекция за сигурност също така показва, че анализаторът и трансформаторът на Vips са предавали недоверени прикачени файлове към небезопасните операции.

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

Корекцията извиква Vips.block_untrusted(true) при стартиране на Active Storage. Приложенията, които не могат незабавно да обновят Rails, могат да зададат променливата VIPS_BLOCK_UNTRUSTED, когато работят с libvips 8.13 или по-нова версия, или да извикат Vips.block_untrusted(true) с ruby-vips 2.2.1 или по-нова. От Rails посочват, че по-ранните версии на libvips не могат да блокират тези операции, така че приложенията трябва да обновят libvips или да го премахнат от системата.

Rails изказва благодарности на Андре Баптиста, Бруно Мендес и Рафаел Кастильо от Ethiack, както и на RyotaK от GMO Flatt Security за независимото докладване на проблема. Изследователите не са разкрили злонамерения формат, структурата за четене на файлове или веригата за отдалечено изпълнение на код (RCE). Rails заяви, че допълнителни технически подробности ще бъдат публикувани не по-късно от 28 август 2026 г.

The Hacker News се свърза със екипа по сигурност на Rails относно експлоатацията и засегнатите версии, както и с Ethiack относно веригата на атака.

Нито Rails, нито изследователите съобщават за експлоатация в реална среда към момента на публикуване. Проверка на The Hacker News в 17:30 UTC на 29 юли установи, че CVE-2026-66066 не е включена в версия 2026.07.27 на каталога с известни експлоатирани уязвимости на CISA.

Няма надеждни данни за броя на уязвимите приложения или идентифицираните жертви. Оценката от 9.5 описва сериозността по CVSS, а не колко внедрявания са изложени на риск: едно уязвимо внедряване трябва също така да използва Vips, да приема недоверени качвания на изображения и да включва уязвима операция в компилацията на libvips.