Розробники популярного веб-фреймворку Ruby on Rails випустили термінові оновлення безпеки для усунення критичної вразливості в компоненті Active Storage. Ця проблема безпеки отримала ідентифікатор CVE-2026-66066 та оцінена у 9.5 балів за шкалою CVSS, що класифікує її як критичну загрозу надвисокого рівня. Вразливість дозволяє неавторизованим зловмисникам читати довільні файли безпосередньо з серверів додатків за допомогою спеціально сформованих завантажень зображень, створюючи передумови для повної компрометації систем.
Active Storage — це вбудований інструмент Ruby on Rails, який забезпечує зручне завантаження файлів (наприклад, аватарів користувачів, документів або медіафайлів) та їх зв'язування з моделями Active Record. Він підтримує роботу з локальними дисками, а також популярними хмарними сховищами, такими як Amazon S3, Google Cloud Storage та Microsoft Azure Blob Storage. Проблема виникає на етапі обробки та аналізу завантажених файлів зображень, коли система намагається витягти метадані або згенерувати мініатюри.
Технічна суть атаки полягає в тому, що зловмисник може завантажити файл зображення, який містить шкідливу структуру метаданих або посилання на локальні шляхи (path traversal). Через відсутність належної санітизації шляхів та перевірок вхідних даних під час обробки графічних об'єктів, фреймворк дозволяє вийти за межі призначеного каталогу сховища. В результаті неавторизований віддалений користувач отримує можливість змусити сервер прочитати та повернути вміст будь-кого файлу на диску, до якого має доступ системний процес Ruby on Rails.
Наслідки такої атаки мають лавиноподібний характер. Читання довільних файлів на сервері Rails миттєво розкриває змінні оточення процесу, конфігураційні файли та критичні секрети додатка. Найбільшу небезпеку становить потенційний витік ключа secret_key_base або головного ключа Rails (master.key), які використовуються для підписання та шифрування сесійних кук користувачів (cookies). Отримавши цей ключ, зловмисник може згенерувати підроблену адміністративну сесію та надіслати її серверу, що призводить до повного віддаленого виконання коду (RCE) у контексті веб-додатка.
Окрім ключів сесій, під загрозу потрапляють конфігураційні файли на кшталт config/database.yml, файли конфігурацій середовища .env, а також закриті ключі доступу до хмарних сервісів Amazon Web Services (AWS), Google Cloud або Microsoft Azure. Це відкриває шлях до компрометації баз даних, горизонтального переміщення всередині корпоративної хмари компанії та викрадення конфіденційної інформації клієнтів. З огляду на простоту експлуатації та відсутність вимог до автентифікації, CVE-2026-66066 становить надзвичайну небезпеку для будь-го проекту на Ruby on Rails, де активовано функціонал завантаження файлів.
Розробники Ruby on Rails оперативно випустили офіційні патчі для всіх активних гілок фреймворку. Компаніям та розробникам наполегливо рекомендується негайно оновити залежності своїх проектів. Оскільки вразливість стосується ядра обробки Active Storage, використання альтернативних бібліотек для обробки зображень не гарантує безпеки, якщо сам компонент Active Storage залишається вразливим в системі.
Що це означає на практиці
- Негайне оновлення Ruby on Rails. Перевірте версії ваших проектів у файлі
Gemfile.lock. Оновіть фреймворк Ruby on Rails до виправлених версій, де усунено вразливість CVE-2026-66066. Якщо швидке оновлення всього фреймворку неможливе через ризик порушення сумісності, застосуйте офіційні патчі безпосередньо до компонента Active Storage або тимчасово заблокуйте завантаження зображень неавторизованими користувачами. - Ротація абсолютно всіх секретів. Припускайте найгірший сценарій — якщо додаток був вразливим, секрети могли бути викрадені. Обов'язково згенеруйте новий
secret_key_baseта оновітьmaster.key. Також проведіть повну ротацію паролів від баз даних, ключів доступу до хмарних сховищ (S3/Blob) та API-ключів зовнішніх сервісів, які зберігалися на сервері. - Ретроспективний аналіз логів. Перевірте логи вашого веб-сервера (Nginx, Apache) та самого додатка Rails на наявність аномальних POST-запитів до маршрутів Active Storage (наприклад,
/rails/active_storage/direct_uploadsабо схожих ендпоінтів). Шукайте запити від неавторизованих користувачів, після яких слідували спроби завантаження або читання файлів із нетиповими MIME-типами чи структурами. - Обмеження прав доступу на рівні ОС. Переконайтеся, що процес вашого Rails-додатка (наприклад, під управлінням Puma чи Unicorn) працює від імені окремого системного користувача з мінімально необхідними привілеями (наприклад,
railsабоwww-data), а не від іменіroot. Це завадить зловмиснику прочитати критичні системні файли (такі як/etc/passwd,/etc/shadowчи конфігурації інших сервісів), навіть якщо він зможе експлуатувати CVE-2026-66066. - Впровадження Web Application Firewall (WAF). Налаштуйте правила фільтрації на рівні WAF для виявлення та блокування спроб передачі ознак path traversal (наприклад, символів
../,..%2f) та підозрілих бінарних сигнатур у заголовках та тілах запитів завантаження зображень.
