Eludir La Autenticación SSO SAML Mediante Diferenciales De Parser

Elena Digital López

Recientemente se han identificado vulnerabilidades críticas en la biblioteca ruby-saml, utilizadas para la autenticación SAML en diversas aplicaciones, con efectos potencialmente serios para la seguridad de las cuentas de usuario. Estas vulnerabilidades, registradas bajo los códigos CVE-2025-25291 y CVE-2025-25292, afectan a todas las versiones de ruby-saml hasta la 1.17.0 y permiten a los atacantes crear afirmaciones SAML fraudulentas si tienen acceso a una firma válida. Esta brecha de seguridad puede permitir a los atacantes autenticarse como cualquier usuario dentro de las organizaciones afectadas.

Ante este riesgo, se insta a los usuarios a actualizar a la versión 1.18.0 de ruby-saml para evitar posibles ataques de toma de control de cuentas. Las aplicaciones que dependen de bibliotecas como omniauth-saml, deben también actualizarse para referenciar la versión corregida de ruby-saml.

Aunque GitHub, una de las plataformas de desarrollo más utilizadas, no utiliza actualmente ruby-saml para su autenticación, había considerado su implementación como una biblioteca de código abierto para la autenticación SAML. Sin embargo, una instancia de esta vulnerabilidad fue encontrada en GitLab, lo que suscitó que el equipo de seguridad de GitHub alertara a sus desarrolladores y tomara medidas preventivas para proteger a sus usuarios.

GitHub había utilizado ruby-saml hasta 2014, pero debido a la falta de ciertas características, optó por una implementación propia de SAML. Informes de vulnerabilidades en su sistema motivaron a GitHub a reconsiderar el uso de ruby-saml. En un esfuerzo por explorar la viabilidad de esta biblioteca, GitHub descubrió en octubre de 2024 un problema significativo en ruby-saml: un bypass de autenticación conocido como CVE-2024-45409. Esto condujo a una revisión exhaustiva de la seguridad de la biblioteca mediante un programa de recompensas por errores, que invitó a investigadores a testar entornos con ruby-saml para identificar vulnerabilidades.

Durante este proceso, se detectó que ruby-saml utilizaba dos analizadores XML distintos, REXML y Nokogiri, en el proceso de verificación de firmas. La interacción entre estos analizadores podría resultar en la verificación incorrecta de una firma, permitiendo un bypass por diferencias en la interpretación del input. El descubrimiento del fallo requirió identificar y explotar las diferencias entre los analizadores para crear un exploit funcional.

Los análisis realizados subrayan el riesgo de que un atacante pueda hacerse pasar por cualquier usuario con una firma válida. Se recomienda encarecidamente a las organizaciones afectadas revisar los registros de acceso para identificar actividades sospechosas de inicio de sesión desde IPs desconocidas.

La complejidad intrínseca en la validación de firmas y resúmenes representa un desafío continuo en la implementación segura de SAML. Resolver esta situación exige no solo actualizar las bibliotecas afectadas, sino también adoptar una vigilancia constante en el manejo y utilización de componentes de seguridad en el desarrollo de software.

Scroll al inicio