Recientemente, se han detectado serias vulnerabilidades de seguridad en la biblioteca ruby-saml, que afectan a todas las versiones hasta la 1.17.0. Las vulnerabilidades, identificadas como CVE-2025-25291 y CVE-2025-25292, permiten a atacantes con una firma válida generar sus propias afirmaciones SAML. Esto les facilitaría autenticar como cualquier usuario y potencialmente tomar control de cuentas.
La comunidad de desarrolladores que utiliza ruby-saml ha sido instada a actualizar a la versión 1.18.0 para contrarrestar estos riesgos. Además, otras bibliotecas que dependan de ruby-saml, como omniauth-saml, deben actualizarse a versiones que incluyan la nueva actualización de ruby-saml.
Aunque GitHub actualmente no utiliza ruby-saml para autenticación, estaba evaluando retomar su uso como biblioteca unificada de SAML para código abierto. En contraste, una instancia explotable de esta vulnerabilidad fue descubierta en GitLab, lo que movió al equipo de seguridad de GitHub a informar a los desarrolladores y tomar precauciones para proteger a los usuarios de posibles ataques.
Tras la detección de vulnerabilidades en su implementación interna de SAML, GitHub había considerado utilizar ruby-saml nuevamente. Sin embargo, al descubrir una vulnerabilidad significativa de bypass de autenticación en octubre de 2024 (CVE-2024-45409), se realizó una profunda revisión de seguridad de la biblioteca. Esto derivó en la implementación de un programa de recompensas por errores para evaluar la seguridad de ruby-saml, con acceso otorgado a investigadores seleccionados.
Durante el análisis del código, se encontró que ruby-saml usaba los analizadores XML REXML y Nokogiri en su proceso de verificación de firmas. La interacción entre estos analizadores condujo a verificar incorrectamente las firmas, pues interpretan de manera diferente el mismo input. Este problema de seguridad podría ser explotado por atacantes para asumir la identidad de cualquier usuario utilizando una firma válida.
El descubrimiento de esta vulnerabilidad implicó un meticuloso proceso que incluyó identificar el uso de analizadores diferentes, descubrir cómo la discrepancia podría ser explotada, encontrar casos reales de diferencias en la interpretación de los analizadores y finalmente desarrollar un exploit funcional.
Para contrarrestar esta amenaza, se recomienda a las organizaciones revisar los registros de inicio de sesión y detectar actividades sospechosas, especialmente de IPs no habituales. La dificultad en garantizar la seguridad durante la implementación de SAML y los problemas en el proceso de validación de firmas subrayan la necesidad de actualizaciones constantes en las bibliotecas de seguridad y una gestión cuidadosa en el desarrollo de software.