Исследователи GitHub раскрыли механизм обхода цифровых подписей в популярной библиотеке.
В библиотеке ruby-saml, предназначенной для работы с протоколом Security Assertion Markup Language (SAML), обнаружены две уязвимости, требующие немедленного реагирования. Эти уязвимости уже позволили злоумышленникам обходить механизмы аутентификации и осуществлять атаки на учётные записи пользователей.
SAML используется для передачи данных аутентификации и авторизации между различными сервисами, позволяя пользователям единожды входить в систему (SSO) и получать доступ к нескольким ресурсам без повторного ввода учётных данных. Однако в коде ruby-saml обнаружены ошибки, которые позволяют атакующим подделывать данные аутентификации.
Две критические уязвимости, получившие идентификаторы CVE-2025-25291 и CVE-2025-25292 , имеют высокий рейтинг CVSS — 8.8 из 10. Они затрагивают версии библиотеки младше 1.12.4, а также версии от 1.13.0 до 1.18.0 (не включительно).
Причина проблем кроется в различиях между парсерами XML REXML и Nokogiri, которые по-разному интерпретируют один и тот же XML-код. Это расхождение открывает возможность для атаки Signature Wrapping, позволяя злоумышленникам обходить механизмы аутентификации.
Исследователи из лаборатории безопасности GitHub выявили данные уязвимости в ноябре 2024 года. Специалисты предупредили, что эти ошибки могут привести к захвату учётных записей пользователей. Атакующие, обладая одной действительной подписью, созданной с помощью ключа, используемого для проверки SAML-ответов или утверждений, могут подделывать SAML-утверждения и авторизоваться от имени любого пользователя.
Кроме того, в версии 1.12.4 и 1.18.0 исправлена ещё одна проблема ( CVE-2025-25293 , CVSS 7.7), связанная с отказом в обслуживании (DoS). Она возникает при обработке сжатых SAML-ответов и может использоваться для дестабилизации работы сервисов.
Лаборатория безопасности GitHub отмечает, что корень проблемы — несоответствие между проверкой хеша и проверкой подписи, что и позволило злоумышленникам использовать разницу в обработке XML-данных.
Эксперты рекомендуют обновить ruby-saml до последней версии, чтобы устранить риски эксплуатации уязвимостей. Ранее, в 2024 году, GitLab и ruby-saml уже устраняли критический баг ( CVE-2024-45409 , CVSS 10.0), который также позволял обходить механизмы аутентификации.