CVE-2026-66066: Критична вразливість в Rails відкриває серверні файли через завантаження зображень

CVE-2026-66066: Критична вразливість в Rails відкриває серверні файли через завантаження зображень

SOC Prime Team
SOC Prime Team linkedin icon Стежити

Add to my AI research

Ruby on Rails випустив оновлення безпеки для критичної уразливості Active Storage, яка може дозволити неаутентифікованому зловмиснику читати довільні файли з сервера додатка через спеціально створені завантаження зображень. Позначена як CVE-2026-66066 і оцінена в 9.5 за шкалою CVSS, ця слабкість може розкрити секрети, доступні процесу Rails, і потенційно активувати віддалене виконання коду або бічний рух у підключені системи.

Проблема виникає через взаємодію між Active Storage і libvips, бібліотекою обробки зображень, обраною додатками на Rails з використанням load_defaults 7.0 і пізніших. У налаштуванні Rails за замовчуванням, яке приймає завантаження зображень від неперевірених користувачів, небезпечні операції libvips можуть обробити зловмисний файл і розкрити дані, які ніколи не повинні бути доступні через завантажене зображення.

Найважливіші деталі для CVE-2026-66066 стосуються чутливості потенційно розкритої інформації. Зловмисник може отримати процесне середовище Rails, secret_key_base, головний ключ Rails, облікові дані бази даних, ключі хмарного зберігання та токени API третіх сторін. Залежно від отриманих секретів, атака може прогресувати від розкриття довільних файлів до підробки сеансу, компрометації додатка або доступу до зовнішньої інфраструктури.

Аналіз CVE-2026-66066

Слабкість полягає в обробці варіантів Active Storage, коли додаток використовує libvips. Libvips підтримує численні завантажувачі, зберігачі та інші операції для роботи з форматами файлів. Деякі з цих операцій залежать від сторонніх бібліотек і класифікуються як “нефаззовані” або ненадійні, оскільки вони небезпечні для обробки ворожого введення.

Active Storage не блокував ці операції перед передачею завантажених вкладень до аналізатора та перетворювача Vips. У результаті спеціально створене завантаження може викликати небезпечну операцію та отримати вміст довільних файлів, читаних робітником Rails.

У найсерйозніших сценаріях зловмисники читають файли сервера через завантаження зображень та відновлюють чутливі значення з середовища додатка. Помилка не вимагає виділеної функції зміни розміру або ескізу, щоб бути відкритою. Згідно з рекомендацією Rails, генерація варіантів зображень не є окремою вимогою для вразливості додатка.

CVE-2026-66066 впливає на застосунки, що відповідають обом наступним умовам:

  • Вони використовують libvips для обробки зображень Active Storage, зазвичай через config.active_storage.variant_processor = :vips.
  • Вони дозволяють неперевіреним користувачам завантажувати зображення.

Звіти про діапазони, які підпадають під дію, включають 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 і 6.1 також можуть бути піддані ризику, коли адміністратори явно налаштовують Vips як процесор зображень, хоча це не було за замовчуванням для цих випусків. Додатки, що використовують MiniMagick замість Vips, не піддаються дії через цю специфічну атаку.

Отримавши можливість читання довільних файлів, зловмисники можуть націлитися на:

  • secret_key_base
  • config/master.key або змінну середовища RAILS_MASTER_KEY
  • Секрети, розшифровані з config/credentials.yml.enc
  • Імена користувачів бази даних та паролі
  • Ключі зберігання Amazon S3, Google Cloud або Azure
  • Токени для платежів, повідомлень, моніторингу та інших сторонніх служб

Отримання secret_key_base може бути особливо небезпечним, оскільки Rails використовує його для захисту підписаних і зашифрованих даних додатка. Залежно від додатка та доступних ланцюжків гаджетів, вкрадене значення може дозволити зловмиснику підробити довірені дані й потенційно прогресувати до виконання коду. Хмарні або API-облікові дані можуть також підтримувати бічний рух за межі зламаного сервера Rails.

Третя сторона опублікувала демонстрацію PoC для CVE-2026-66066 незабаром після координованого розкриття і стверджує, що може відтворити ланцюг відчитування довільних файлів до виконання коду в ізольованому середовищі Docker. На той час оновленого звіту, The Hacker News не перевірив цей код незалежно, тоді як оригінальні дослідницькі групи навмисно не надавали детальної механіки експлойту, щоб дати адміністраторам час для виправлення.

Зараз нема опублікованих постачальниками CVE-2026-66066 індикаторів компрометації або підтверджених звітів про експлуатацію в дикій природі. Команда безпеки Rails повідомила, що не знала про спроби експлуатації до чи після розкриття, але відсутність відомих атак не слід інтерпретувати як доказ того, що відкриті програми безпечні.

Пом’якшення CVE-2026-66066

Адміністратори повинні оновити Active Storage до одного з наступних виправлених випусків:

  • Rails 7.2.3.2 або пізніший
  • Rails 8.0.5.1 або пізніший
  • Rails 8.1.3.1 або пізніший

Rails 7.0 та 7.1 більше не підпадають під безпекову підтримку і не отримають зворотного виправлення. Програмам, що працюють на цих гілках, слід перейти на Rails 7.2.3.2 або новішу підтримувану версію.

Виправлена конфігурація також вимагає libvips 8.13 або пізніше. Програми, які безпосередньо використовують ruby-vips gem, повинні працювати на ruby-vips 2.2.1 або пізніше. Виправлення викликає Vips.block_untrusted(true) під час ініціалізації Active Storage, запобігаючи небезпечним операціям libvips від обробки ворожих завантажень.

Оновлення закриває вразливий шлях обробки, але не інвалідизує секрети, які можуть вже бути розкриті. Організації повинні вважати кожне значення, доступне процесу Rails, потенційно зламаним і змінити його. Це включає секрети підписування додатків, головні ключі, облікові дані бази даних, ключі служб зберігання та сторонні токени.

Зміна secret_key_base призведе до невалідізації активних сеансів і вимагатиме від користувачів повторного входу. Це також вплине на зашифровані cookie-файли, підписані cookie-файли, підписані глобальні ідентифікатори і раніше видані URL-адреси Active Storage. Адміністратори не повинні зберігати викритий секрет як резерв після ротації.

Коли негайне оновлення Rails неможливе, програми, що використовують libvips 8.13 або пізніше, можуть встановити наступну змінну середовища:

VIPS_BLOCK_UNTRUSTED

Програми, що використовують ruby-vips 2.2.1 або пізніше, можуть альтернативно додати наступний виклик до ініціалізатора:

Vips.block_untrusted(true)

Версії Libvips старше 8.13 не можуть блокувати небезпечні операції. У таких середовищах немає безпечного лише конфігураційного обхідного шляху. Адміністратори повинні оновити libvips або видалити залежність, наприклад, видалити ruby-vips з Gemfile, якщо він не потрібен.

Виявлення CVE-2026-66066 слід почати з інвентаризації застосунків, що використовують Active Storage, Vips і недовірені завантаження зображень. Команди безпеки повинні перевірити журнали застосунків і проксі на предмет незвичайної активності завантажень, неочікуваних форматів зображень, повторюваних помилок обробки варіантів і запитів, що супроводжуються підозрілим використанням сеансу або облікових даних.

Щоб виявити вплив CVE-2026-66066, команди повинні перевірити точні версії Active Storage, libvips і ruby-vips замість покладатися лише на основну версію Rails. Програмам слід також перевірити на наявність доказів несанкціонованого доступу, що стосується облікових даних, які були доступні процесу Rails.

Proof of Value

 

FAQ

Що таке CVE-2026-66066 і як він працює?

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

Коли було вперше виявлено CVE-2026-66066?

Дати приватного виявлення не були публічно розголошені. Питання було незалежно повідомлено дослідниками з Ethiack і GMO Flatt Security, а координована рекомендація безпеки Rails була опублікована 29 липня 2026 року.

Який вплив CVE-2026-66066 на системи?

Прямий вплив – розкриття довільних файлів. Зловмисники можуть отримати секрети підпису додатків, облікові дані Rails, паролі бази даних, ключі зберігання у хмарі або токени третіх сторін. Залежно від розкритих даних та конфігурації програми компрометація може призвести до підробки сеансу, віддаленого виконання коду або доступу до підключених служб.

Чи може CVE-2026-66066 вплинути на мене в 2026 році?

Так. Програми Rails залишаються відкритими, якщо вони використовують вразливу версію Active Storage, обробляють зображення за допомогою libvips і приймають завантаження від неперевірених користувачів. Застосунки Rails 7.0 та 7.1, які досягли кінця строку, також під загрозою і повинні бути оновлені до підтримуваної гілки.

Як я можу захиститись від CVE-2026-66066?

Оновіть до Rails 7.2.3.2, 8.0.5.1, 8.1.3.1 або новішої версії; переконайтеся, що libvips версії 8.13 або новішої; і використовуйте ruby-vips 2.2.1 або пізнішу, де це застосовується. Змініть усі секрети, доступні процесу додатка, та перегляньте активність завантажень для можливої експлуатації.

Приєднуйтесь до платформи Detection as Code від SOC Prime щоб покращити видимість загроз, найбільш актуальних для вашого бізнесу. Щоб допомогти вам розпочати та отримати негайну цінність, забронюйте зустріч зараз з експертами SOC Prime.

More Articles