CVE-2024-45409
Ruby-SAML: обход проверки подписи SAML
CVE-2024-45409 затрагивает приложения, использующие уязвимые версии ruby-saml для SAML-аутентификации. Атакующий с доступом к подписанному IdP-документу может подделать ответ и войти от имени другого пользователя.
Кому нужно проверить
Командам Ruby-приложений, владельцам SAML/SSO интеграций и администраторам self-managed GitLab с включённой SAML-аутентификацией. Важна не только марка продукта, но и конкретная версия, способ установки, операционная система и конфигурация.
В чём риск
Неаутентифицированный атакующий, имеющий доступ к подписанному IdP-документу, может подделать SAML Response/Assertion и войти как произвольный пользователь. Это не означает автоматическую уязвимость систем без SAML.
Затронутые версии
Ruby-SAML версии 1.12.2 и ниже, а также 1.13.0–1.16.0; omniauth-saml 1.10.3 и ниже и 2.1.0 и ниже. Уязвимость применима к интеграциям, которые используют SAML-проверку ответа через эти пакеты.
Исправленные версии
Ruby-SAML исправлен в 1.12.3 и 1.17.0; omniauth-saml — в 1.10.5 и 2.2.0. GitLab для своих веток поставлял зависимость ruby-saml 1.17.0 в patch releases.
Что сделать
- 1Проверьте lockfile и транзитивные зависимости ruby-saml/omniauth-saml, а также активные SAML-провайдеры. Установленный пакет не доказывает, что именно он используется в runtime.
- 2Обновите ruby-saml и omniauth-saml до исправленных версий совместимой ветки, затем проверьте вход, выход, группы и сопоставление атрибутов на staging.
- 3Для self-managed GitLab установите соответствующий patch release; временно включите GitLab 2FA для пользователей и не разрешайте SAML two-factor bypass option согласно advisory.
- 4Проверьте журналы SSO и приложения на неожиданные входы, смену идентификаторов и административные действия. При подозрении отзовите сессии и расследуйте IdP и приложение.
Как не подпустить ботов к сайту
BotProtection принимает запросы перед вашим сайтом и фильтрует автоматизированные обращения. Поэтому ботам сложнее добраться до уязвимого компонента и начать его проверять или атаковать, а вероятность успешной автоматизированной атаки становится значительно ниже. Это дополнительный слой защиты: обновление уязвимых компонентов, проверка журналов и реагирование на инциденты остаются обязательными.
Первоисточники
Снизьте шанс атаки до того, как бот дойдёт до сайта
Подключите BotProtection как фильтр перед сайтом: подозрительные автоматизированные запросы отсекаются до обращения к вашему серверу. Это значительно снижает вероятность автоматизированной атаки, но не исправляет саму уязвимость, поэтому обновление и настройка компонентов остаются обязательными.