Кібербезпека

Критична вразливість у Ruby on Rails дозволяє читати файли сервера через завантаження зображень

T

The Hacker News

3 хв читання

Серверна стійка в центрі обробки даних з абстрактним зображенням потоку даних, що символізує несанкціонований доступ до файлів через вразливість.

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

Деталі вразливості

Вразливість дозволяє розкривати середовище процесу Rails та конфіденційні дані, такі як secret_key_base, головний ключ Rails, паролі до баз даних, облікові дані хмарних сховищ та токени API. Ці секрети можуть потенційно призвести до віддаленого виконання коду (RCE) або горизонтального переміщення в підключені системи.

Проблема виникає на межі довіри між Active Storage та бібліотекою libvips, яка використовується для обробки зображень. libvips підтримує операції, деякі з яких позначені як "unfuzzed" або "untrusted" через їхню небезпечність для ворожих вхідних даних. Active Storage не блокував ці операції, дозволяючи спеціально створеному завантаженню викликати їх та розкривати файли, доступні для читання робочим процесом Rails. Для експлуатації вразливості не потрібно, щоб додаток мав спеціальну операцію зміни розміру або створення мініатюр; "генерування варіантів не є окремою вимогою". Як аналізатор, так і трансформатор Vips передавали ненадійні вкладення до небезпечних операцій.

Зачеплені версії та рекомендації

Вразливість зачіпає додатки, які використовують libvips для обробки зображень Active Storage та приймають завантаження зображень від ненадійних користувачів. Rails обирає Vips за замовчуванням у load_defaults 7.0 та пізніших версіях. Зачеплені діапазони версій Rails включають 7.0.0 до 7.2.3.1, 8.0.0 до 8.0.5 та 8.1.0 до 8.1.3. Версії Rails 6.0.0 до 6.1.7.10 зачеплені лише тоді, коли Active Storage налаштовано на використання Vips, що не було процесором за замовчуванням у Rails 6. Офіційна рекомендація вказує на activestorage < 7.2.3.2. Додатки, що використовують MiniMagick, не піддаються цій конкретній атаці.

Rails 7.0 та 7.1 досягли кінця життєвого циклу і не мають виправлених випусків, тому додатки на цих гілках повинні оновитися до Rails 7.2.3.2 або новішої версії. Операторам слід оновитися до Rails 7.2.3.2, 8.0.5.1 або 8.1.3.1 та обернути кожен секрет, доступний для читання процесом додатка. Пропатчені інсталяції вимагають libvips 8.13 або новішої версії, а при встановленому ruby-vipsruby-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 не можуть блокувати ці операції, тому додатки повинні оновити libvips або видалити його.

Rails попереджає, що застосування патчу не анулює облікові дані, які вже могли бути викрадені, тому обертання секретів є критично важливим. На момент публікації не було опубліковано жодного підтвердження концепції (PoC) або виявлено експлойтів у відкритих репозиторіях. Також не повідомлялося про експлуатацію в реальних умовах. Подальші технічні деталі будуть оприлюднені не пізніше 28 серпня 2026 року.

За виявлення проблеми були відзначені Андре Баптіста, Бруно Мендес та Рафаель Кастільо з Ethiack, а також RyotaK з GMO Flatt Security.

Що це означає для розробників

Розробникам необхідно терміново оновити свої Rails-додатки до пропатчених версій (7.2.3.2, 8.0.5.1 або 8.1.3.1) та переконатися, що libvips і ruby-vips також оновлені до необхідних версій. Після оновлення критично важливо обернути всі секрети, які могли бути скомпрометовані. Якщо негайне оновлення неможливе, розробники можуть застосувати тимчасове рішення, блокуючи ненадійні операції libvips.

Ключові факти

  • Виявлено критичну вразливість CVE-2026-66066 в Active Storage Ruby on Rails з оцінкою CVSS 9.5.

  • Вразливість дозволяє неаутентифікованим зловмисникам читати довільні файли сервера через спеціально створені завантаження зображень.

  • Зачіпає додатки, що використовують libvips для обробки зображень та приймають завантаження від ненадійних користувачів.

  • Вимагає оновлення до пропатчених версій Rails (7.2.3.2, 8.0.5.1, 8.1.3.1) та обертання всіх скомпрометованих секретів.

  • Тимчасове рішення включає встановлення VIPS_BLOCK_UNTRUSTED або виклик Vips.block_untrusted(true) з відповідними версіями libvips або ruby-vips.

Джерела

КібербезпекаРозробка ПЗТехнології

Попередні статті

Сучасний дата-центр із серверними стійками, що символізує захист корпоративних даних у хмарі

H.I.G. Growth інвестує в Rewind для прискорення захисту даних SaaS та зростання, керованого ШІ

H.I.G. Growth Partners здійснила стратегічну інвестицію в Rewind Software, надавши капітал для розширення платформи стійкості SaaS. Це посилить захист даних у хмарі та можливості, керовані ШІ.

Екран комп'ютера з рядками коду, що містить приховану шкідливу аномалію

Amazon виявила масштабну північнокорейську хакерську кампанію проти відкритого ПЗ

Дослідники Amazon пов'язали північнокорейську групу з чотирма компрометаціями відкритого програмного забезпечення, що розширює відомий масштаб зусиль Пхеньяна з використання довіреного коду для доступу до систем.

Концептуальна ілюстрація еволюції обміну медичними даними від магнітних стрічок до глобальної цифрової мережі.

PhysioNet: Від перших ЕКГ-записів до глобального стандарту даних для ШІ в медицині

Платформа PhysioNet, що виникла з ініціативи MIT у 1975 році, перетворилася на ключовий ресурс для обміну медичними даними, каталізуючи прогрес у дослідженнях, особливо в галузі ШІ.

Наступні статті