Исследователи безопасности из Duo Labs и US Computer Emergency Response Team Coordination Center (CERT/CC) сообщили о новой уязвимости SAML, которая позволяет злоумышленникам осуществлять аутентификацию в качестве законных пользователей без знания пароля.
SAML (Security assertion markup language — язык разметки декларации безопасности) — основанный на XML язык, который часто используется для обмена данными аутентификации и авторизации между сторонами, в частности, между поставщиком сервиса (service provider) и поставщиком учетных записей (identity provider).
Самая важная область использования SAML — в технологиях единого входа (single sign-on, SSO), которые обеспечивают сквозную аутентификацию при работе через Web-браузер. В отличие от других схем аутентификации, таких как OAuth, OpenID, OpenID Connect и Facebook Connect, SSO хранит идентификатор на центральном сервере, где у пользователей есть учетные записи.
Когда пользователь пытается войти в другие корпоративные приложения, эти приложения (поставщики услуг) отправляют запросы на локальный SSO-сервер (поставщик учетных записей) через SAML.
Исследователи Duo Labs обнаружили недостаток дизайна, который влияет на программы SSO и несколько библиотек с открытым исходным кодом, предназначенных для поддержки SSO-операций на основе SAML. Подробное описание недостатка можно прочитать в отчете Duo Labs.
Суть уязвимости в том, как эти библиотеки обрабатывают XML-комментарии, включенные в середину запроса ответа SAML. Например, специалисты заметили, что даже если злоумышленник вставляет комментарий внутри поля имени пользователя, он все равно может получить доступ к аккаунту. Единственным условием для использования уязвимости является наличие учетной записи в сети жертвы.
На данный момент уязвимость касается следующих провайдеров 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
Как видно, недостаток затрагивает не всех провайдеров, кроме того, он не касается учетных записей, защищенных двухфакторной аутентификацией.
Чтобы исправить ситуацию, специалисты предлагают обновить программное обеспечение, затронутое уязвимостью.