Compartir:
Recientemente, se han detectado vulnerabilidades críticas de bypass de autenticación en la biblioteca ruby-saml, utilizadas para manejar autenticaciones SAML en aplicaciones web. Estas fallas, identificadas como CVE-2025-25291 y CVE-2025-25292, están presentes en todas las versiones hasta la 1.17.0 y permiten a los atacantes con una firma válida crear sus propias afirmaciones SAML, lo que les otorga la capacidad de autenticarse como cualquier usuario de un sistema afectado, abriendo así la puerta a tomar control de cuentas.
Ante esta amenaza, se ha instado a todos los usuarios de ruby-saml a que actualicen a la versión 1.18.0 para mitigar estos riesgos. De manera similar, las bibliotecas que dependen de ruby-saml, como omniauth-saml, deben ser actualizadas para referenciar la versión sin vulnerabilidades.
Es importante destacar que, aunque GitHub no utiliza actualmente ruby-saml en su proceso de autenticación, había estado considerando reintegrar esta biblioteca de código abierto. Sin embargo, una instancia explotable de la vulnerabilidad fue encontrada en GitLab, lo que llevó a GitHub a alertar a su equipo de desarrolladores para que implementaran medidas de protección adicionales en sus sistemas.
GitHub, que había utilizado ruby-saml hasta 2014 antes de pasar a una implementación propia, recibió informes sobre vulnerabilidades en su sistema, llevando a la exploración de ruby-saml nuevamente. En octubre de 2024, una vulnerabilidad significativa de bypass de autenticación (CVE-2024-45409) fue descubierta, impulsando una investigación exhaustiva sobre la seguridad de esta biblioteca. Como parte de su respuesta, GitHub lanzó un programa de recompensas por encontrar errores, dando acceso a investigadores seleccionados a entornos de prueba con ruby-saml.
En la investigación, se observó que ruby-saml empleaba dos analizadores XML diferentes: REXML y Nokogiri. REXML está implementado en Ruby puro, mientras que Nokogiri ofrece una API más amigable. Esta dualidad podría llevar a la verificación incorrecta de una firma debido a diferencias en la interpretación del mismo contenido, resultando en un posible bypass de autenticación.
El descubrimiento de esta vulnerabilidad involucró varios pasos, desde identificar el uso simultáneo de dos analizadores hasta encontrar y aprovechar diferencias reales entre ellos para crear un exploit funcional. A raíz de estos hallazgos, se advierte a las organizaciones revisar los registros de inicio de sesión y estar vigilantes ante actividad sospechosa originada desde direcciones IP inusuales.
La implementación segura de SAML presenta desafíos considerables, ya que las interrupciones en el proceso de validación de firmas y resúmenes son problemas comunes. Resolver estos problemas implica no solo actualizar las bibliotecas afectadas, sino también mantener una observación cuidadosa sobre cómo se integran y manejan estas bibliotecas de seguridad en el desarrollo continuo de software.