Recientemente, se han detectado vulnerabilidades críticas de bypass de autenticación en la biblioteca ruby-saml, afectando a todas sus versiones hasta la 1.17.0. Estas vulnerabilidades, catalogadas como CVE-2025-25291 y CVE-2025-25292, representan un riesgo significativo, ya que permiten a atacantes con firmas válidas crear sus propias afirmaciones SAML y autenticarse como cualquier usuario. Esta situación podría dar lugar a peligrosos ataques de toma de control de cuentas.
Los desarrolladores y usuarios de ruby-saml deben actualizar a la versión 1.18.0 para mitigar estos riesgos. Además, se insta a que las bibliotecas que usan ruby-saml, como omniauth-saml, se actualicen a versiones que utilicen la corrección de seguridad implementada en ruby-saml.
En el ámbito de la autenticación, aunque GitHub no estaba utilizando ruby-saml, sí había considerado su implementación nuevamente como biblioteca de código abierto. No obstante, una instancia explotable de esta vulnerabilidad fue encontrada en GitLab, lo que llevó al equipo de seguridad de GitHub a alertar a los desarrolladores para que implementen medidas de protección adecuadas.
Cabe destacar que GitHub había utilizado ruby-saml hasta el año 2014, pero luego optó por desarrollar su propia implementación debido a la carencia de ciertas características en ruby-saml. Sin embargo, tras recibir reportes de vulnerabilidades en su propia solución, GitHub decidió reexaminar el uso de ruby-saml. En octubre de 2024, se detectó una vulnerabilidad significativa, CVE-2024-45409, lo que provocó una investigación exhaustiva de la seguridad de la biblioteca y el inicio de un programa de recompensas por errores para mejorar su seguridad.
Durante la revisión del código, se descubrió que ruby-saml usaba dos analizadores XML distintos en la ruta de verificación de firmas: REXML y Nokogiri. Se identificó que la interacción entre estos dos analizadores podría llevar a verificaciones incorrectas de firmas, creando una brecha de seguridad que permitiría un bypass de autenticación debido a diferencias en la interpretación del input entre ambos analizadores.
Este hallazgo detalló un proceso complejo de identificación de los analizadores, explotación de la discrepancia, y aprovechamiento de la misma para desarrollar un exploit funcional. Así, los atacantes podrían suplantar la identidad de cualquier usuario utilizando una firma válida. Para prevenir la explotación malintencionada, se recomienda a las organizaciones revisar los registros de inicio de sesión en busca de actividades sospechosas provenientes de ubicaciones no reconocidas por los usuarios.
El problema de validación defectuosa en las firmas y resúmenes es común en las implementaciones de SAML, complicando la creación de configuraciones seguras. La solución no se limita solo a actualizar las bibliotecas afectadas, sino también a mantener una vigilancia constante sobre el manejo de bibliotecas de seguridad en el desarrollo de software.