Acceso no autorizado: Eludir la autenticación SSO SAML con vulnerabilidades de análisis

Recientemente, se han identificado vulnerabilidades críticas en la biblioteca ruby-saml, lo que ha generado preocupación en la comunidad de desarrolladores. Estas fallas, etiquetadas como CVE-2025-25291 y CVE-2025-25292, afectan a todas las versiones hasta la 1.17.0. Las vulnerabilidades permiten que un atacante con una firma válida, empleada para validar respuestas o afirmaciones SAML de una organización, pueda crear sus propias afirmaciones y autenticarse como cualquier usuario, facilitando potenciales ataques de toma de control de cuentas.

Ante esta situación, se recomienda encarecidamente a los usuarios de ruby-saml actualizar a la versión 1.18.0 para mitigar dichos riesgos. Es crucial que las bibliotecas que dependen de ruby-saml, como omniauth-saml, también se actualicen a una versión que incorpore las correcciones implementadas.

Aunque GitHub está considerando nuevamente el empleo de ruby-saml como biblioteca de código abierto para la autenticación SAML, actualmente no la utiliza. Sin embargo, se ha descubierto una instancia explotable de esta vulnerabilidad en GitLab, lo que ha llevado al equipo de seguridad de GitHub a alertar a los desarrolladores para que tomen medidas y protejan a los usuarios de ataques potenciales.

Desde que GitHub dejó ruby-saml en 2014, había basado su autenticación en una implementación propia que, posteriormente, también presentó vulnerabilidades. En octubre de 2024, se descubrió un bypass de autenticación importante en ruby-saml (CVE-2024-45409), lo cual llevó a una investigación exhaustiva de su seguridad. Como parte de su respuesta, GitHub lanzó un programa de recompensas por la detección de errores, otorgando a investigadores seleccionados acceso a entornos de prueba que empleaban ruby-saml.

Durante este análisis, se detectó que ruby-saml utiliza dos analizadores XML distintos: REXML y Nokogiri. Mientras REXML es una implementación en Ruby puro, Nokogiri ofrece una API más amigable. Se reveló que la interacción entre estos analizadores podría desencadenar una verificación incorrecta de una firma, permitiendo un bypass de autenticación debido a las diferencias en la interpretación de datos.

El descubrimiento de esta vulnerabilidad implicó varias etapas: primero, identificar el uso de los distintos analizadores; luego, establecer cómo podría explotarse esta diferencia; seguir con la identificación de un caso real que exhibiera esta divergencia; y finalmente, desarrollar un exploit funcional para aprovecharla.

La explotación de esta debilidad podría permitir a atacantes usar una firma válida para hacerse pasar por cualquier usuario. Para mitigar el riesgo de un uso malintencionado, se recomienda revisar los registros de inicio de sesión para identificar actividades sospechosas desde IPs que no coincidan con las ubicaciones habituales de los usuarios.

Este incidente subraya la complejidad de implementar una seguridad robusta en aplicaciones SAML, destacando la necesidad no solo de implementar actualizaciones, sino también de manejar meticulosamente las bibliotecas de seguridad en el desarrollo de software para prevenir futuras vulnerabilidades.

Scroll al inicio