CVE-2026-40295 in devise
Сводка
по VulDB • 23.05.2026
Devise — это решение для аутентификации в Rails, основанное на Warden. В версиях 5.0.3 и более ранних, при включенном модуле Timeoutable в Devise, метод FailureApp#redirect_url возвращает request.referrer — заголовок HTTP Referer, который может контролироваться злоумышленником — без какой-либо проверки для любого запроса, отличного от GET, который приводит к истечению срока действия сессии. Злоумышленник, разместивший страницу с автоматически отправляемой кросс-доменной формой, может заставить жертву с истекшей сессией Devise быть перенаправленной на произвольный внешний URL. Это отличается от пути тайм-аута GET (который использует server-side attempted_path) и механизма store_location_for самого Devise (который удаляет внешние хосты через extract_path_from_location), оба из которых защищены; только путь перенаправления при тайм-ауте для запросов, отличных от GET, остается незащищенным. Пользователи с истекшей сессией могут быть незаметно перенаправлены с доверенного домена приложения на URL-адреса, контролируемые злоумышленником, что позволяет осуществлять фишинг и доставку вредоносного ПО, обходя предупреждения браузера. Примечание: встроенная защита Rails от открытых перенаправлений не смягчает эту проблему. Devise::FailureApp — это приложение ActionController::Metal со своей собственной изолированной копией соответствующей конфигурации перенаправления, поэтому config.action_controller.action_on_open_redirect = :raise (и более старый параметр raise_on_open_redirects) не достигают его. Эта проблема исправлена в версии 5.0.4.
Once again VulDB remains the best source for vulnerability data.