Уязвимость в SAML позволяет авторизоваться под чужим именем

Уязвимость в SAML позволяет авторизоваться под чужим именем

Проблема затрагивает решения различных SSO-провайдеров и несколько открытых библиотек, поддерживающих SAML SSO операции.

Исследователи из компании Duo Labs выявили уязвимость в дизайне SAML (Security Assertion Markup Language), которая позволяет атакующему авторизоваться под видом легитимного пользователя без наличия пароля жертвы. Проблема затрагивает решения различных SSO-провайдеров и несколько открытых библиотек, поддерживающих SAML SSO (Single Sign-On) операции.

Уязвимость заключается в том, как данные библиотеки обрабатывают XML комментарии в ответах SAML-протокола. К примеру, внедрив комментарий в поле логина таким образом, что он «разорвет» имя пользователя, злоумышленник может получить доступ к учетной записи легитимного пользователя. При этом у атакующего должен быть зарегистрированный аккаунт в сети жертвы.


Исследователи идентифицировали ряд решений с Single Sign-On на базе SAML, уязвимых к данной атаке:

  • OneLogin - python-saml - CVE-2017-11427
  • OneLogin - ruby-saml - CVE-2017-11428
  • Clever - saml2-js - CVE-2017-11429
  • OmniAuth-SAML - CVE-2017-11430
  • Shibboleth - CVE-2018-0489
  • Duo Network Gateway - CVE-2018-7340

Как отметили эксперты, данная уязвимость затрагивает SAML SSO провайдеров в разной мере, а для некоторых и вовсе не актуальна. Атака не работает против учетных записей, защищенных с помощью двухфакторной аутентификации.

Для предотвращения подобных атак исследователи порекомендовали отключить публичную регистрацию пользовательских учетных записей в важных сетях и проверять каждого пользователя вручную, чтобы злоумышленники не смогли зарегистрировать аккаунт во внутренней сети. Если это невозможно, администраторы могут сформировать список разрешенных доменов электронной почты и ограничить возможность регистрации в сети.

Security Assertion Markup Language (SAML) — открытый стандарт, который описывает фреймворк, позволяющий обеим сторонам (приложению и провайдеру) обмениваться аутентификационной и авторизационной информацией.

Single Sign-On (SSO) — технология, позволяющая авторизоваться в web-приложении через сторонний сайт-провайдер.

Тени в интернете всегда следят за вами

Станьте невидимкой – подключайтесь к нашему каналу.