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

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

V

Voydevich.com · редактор Богдан Войдевич

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-vips – 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 не можуть блокувати ці операції, тому додатки повинні оновити libvips або видалити його.

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

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

Реклама · cv-finder.com

Покажіть AI-стек у резюме без зайвого шуму

AI-асистент CV-Finder допоможе описати LLM/ML-проєкти через результати.

Оформити CV

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

Розробникам необхідно терміново оновити свої 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.

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

Додайте Voydevich.com у бажані джерела Google, щоб частіше бачити наші новини в пошуку.

Реклама · cv-finder.com

Покажіть AI-стек у резюме без зайвого шуму

AI-асистент CV-Finder допоможе описати LLM/ML-проєкти через результати.

Оформити CV

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

Концептуальна ілюстрація архітектури перевіреного AI-асистента для кодування з NVIDIA NeMo Guardrails

Самостійне розміщення перевіреного AI-асистента для кодування з NVIDIA NeMo Guardrails

NVIDIA пропонує рішення для самостійного розміщення перевіреного AI-асистента для кодування, що вирішує проблеми безпеки, ризиків ланцюга поставок та відстеження дефектів у чутливих середовищах.

Сучасна медична лабораторія з біологічним зразком та абстрактною візуалізацією даних машинного навчання на екрані.

Машинне навчання для діагностики рідкісних пухлин: потенціал та виклики "ярликового навчання"

Дослідження показує, що машинне навчання може покращити діагностику рідкісних пухлин надниркових залоз, але вимагає ретельної перевірки на "ярликове навчання".

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

Концептуальна ілюстрація, що показує складну «обв'язку» навколо центрального ядра AI-моделі, символізуючи її ключову роль у вартості та ефективності AI-агентів для кодування.

Не модель, а «обв'язка»: що насправді визначає вартість та ефективність AI-агентів для кодування

Вартість та ефективність AI-агентів для кодування залежать не стільки від базової моделі, скільки від її «обв'язки» — механізмів обробки контексту, повторних спроб та верифікації.