CVE-2016-0752

Rails Ruby on Rails

ВЫСОКАЯ ВЕРОЯТНОСТЬ

Дата обнаружения

2022-03-25

Официальное описание

Directory traversal vulnerability in Action View in Ruby on Rails allows remote attackers to read arbitrary files.

🛡️
Технический анализ и план устранения

Суть уязвимости

Уязвимость (Directory Traversal) в компоненте Action View фреймворка Ruby on Rails позволяет удаленному злоумышленнику, отправляя специально сформированные HTTP-запросы, обходить ограничения и читать произвольные файлы на сервере. Это может привести к утечке конфиденциальных данных (например, файлов с секретами, конфигураций, ключей).

Как исправить

Основной метод — обновление Ruby on Rails до безопасной версии. Уязвимость затрагивает версии 4.2.x до 4.2.5.1, 4.1.x до 4.1.14.1, 4.0.x до 4.0.15.1 и 3.2.x до 3.2.22.1.

  1. Проверьте текущую версию Rails: bash bundle exec rails --version Или в файле Gemfile.lock найдите строку rails.

  2. Обновите гем Rails в Gemfile: Укажите безопасную версию в зависимости от вашей основной ветки:

    • Для 4.2.x: gem 'rails', '~> 4.2.5.1'
    • Для 4.1.x: gem 'rails', '~> 4.1.14.1'
    • Для 4.0.x: gem 'rails', '~> 4.0.15.1'
    • Для 3.2.x: gem 'rails', '~> 3.2.22.1'
  3. Выполните обновление: bash bundle update rails

  4. Перезапустите приложение: bash # Пример для Passenger touch tmp/restart.txt # Или перезапустите сервер приложения (Puma, Unicorn) и веб-сервер (nginx, Apache) sudo systemctl restart puma

Временное решение

Если немедленное обновление невозможно, примените следующие меры:

  1. Настройка WAF (Web Application Firewall):

    • Добавьте правило для блокировки запросов, содержащих последовательности для обхода директорий (../, ..\, %2e%2e%2f).
    • Пример правила для ModSecurity (CRS): Активируйте правило с ID 930100 (Path Traversal Attack) из набора OWASP Core Rule Set.
  2. Ограничение на уровне веб-сервера (Nginx): Добавьте в конфигурацию location, обслуживающего ваше Rails-приложение, блокировку запросов с .. в URI: nginx location @yourapp { if ($request_uri ~* "\.\.") { return 403; } # ... остальная конфигурация проксирования }

  3. Мониторинг журналов (Logs): Настройте алерты на попытки доступа к нестандартным путям в логах приложения (log/production.log) и веб-сервера. Ищите шаблоны, содержащие ../.