Бреши в Rack: точка + слэш = все секреты с сервера Ruby

Бреши в Rack: точка + слэш = все секреты с сервера Ruby

Хочешь читать чужие файлы — Rack уже готов помочь.

image

Специалисты OPSWAT раскрыли три уязвимости в интерфейсе Rack для Ruby, которые при успешной эксплуатации могут позволить злоумышленникам получить несанкционированный доступ к файлам, внедрять вредоносные данные и изменять журналы событий в определённых условиях.

По данным компании OPSWAT, обнаруженные недостатки получили следующие идентификаторы:

CVE-2025-27610 (оценка CVSS: 7,5) — уязвимость типа обход путей, которая позволяет получить доступ ко всем файлам внутри заданной директории root: в случае, если атакующий сможет определить их местоположение.

CVE-2025-27111 (оценка CVSS: 6,9) — некорректная нейтрализация управляющих символов ( CRLF ) и ошибок вывода в логах, которая открывает возможность подмены записей и искажения журналов.

CVE-2025-25184 (оценка CVSS: 5,7) — аналогичный дефект нейтрализации CRLF-последовательностей, который даёт возможность изменять журналы событий и внедрять вредоносные данные.

Успешная эксплуатация этих уязвимостей позволяет скрывать следы атак, читать произвольные файлы и внедрять вредоносный код.

Согласно отчёту OPSWAT, наиболее серьёзной из выявленных проблем считается CVE-2025-27610. Эта уязвимость позволяет неаутентифицированным злоумышленникам извлекать чувствительную информацию, включая конфигурационные файлы, учётные данные и другие конфиденциальные данные, что создаёт угрозу утечки информации.

Корень проблемы заключается в работе модуля Rack::Static , предназначенного для обслуживания статического контента, такого как JavaScript-файлы, стили CSS и изображения. Механизм не фильтрует пользовательские пути перед выдачей файлов, что даёт возможность атакующему предоставить специально сформированный путь и получить доступ к файлам за пределами директории для статических ресурсов.

Дополнительно отмечено, что если параметр :root не определён явно, Rack автоматически устанавливает его равным текущей рабочей директории приложения (Dir.pwd), фактически превращая её в корень веб-приложения. В случае, если настройка :root отсутствует или настроена некорректно относительно параметра :urls, атакующий может использовать технику обхода путей для доступа к конфиденциальным данным вне ограниченного каталога.

Для минимизации рисков рекомендуется обновить Rack до последней версии. Если немедленное обновление невозможно, советуется отказаться от использования Rack::Static или убедиться, что параметр root: указывает на директорию, содержащую только публичные файлы.

Присоединяйся к сообществу ИБ-специалистов

Обменивайся опытом, решай реальные задачи и прокачивай навыки вместе с экспертами на Standoff Defend*.

*Защищать. Реклама. АО «Позитив Текнолоджиз», ИНН 7718668887