En un reciente informe de seguridad se han revelado vulnerabilidades críticas en la biblioteca ruby-saml, afectando todas sus versiones hasta la 1.17.0. Identificadas como CVE-2025-25291 y CVE-2025-25292, estas fallas permiten a atacantes con una firma válida construir sus propias afirmaciones SAML y autenticarse como cualquier usuario, exponiendo a las organizaciones a posibles ataques de toma de control de cuentas.
Los desarrolladores que utilizan ruby-saml están siendo instados a actualizar a la versión 1.18.0 para mitigar estos riesgos. También se recomienda que las bibliotecas dependientes de ruby-saml, como omniauth-saml, se actualicen a versiones que incluyan esta corrección.
Aunque GitHub había utilizado ruby-saml hasta 2014, dejó de hacerlo por la falta de ciertas características. Sin embargo, ante informes de vulnerabilidades en su propia implementación, estaba considerando volver a utilizar ruby-saml. En un análisis reciente, se encontró una instancia explotable de la vulnerabilidad en GitLab. Esto llevó a GitHub a notificar a sus desarrolladores para que tomen medidas de protección.
Durante una auditoría de seguridad, se descubrió que ruby-saml usaba dos analizadores XML distintos para verificar firmas: REXML y Nokogiri. La interacción entre ambos podría llevar a la verificación incorrecta de una firma, permitiendo un bypass de autenticación. Esto requirió una investigación detallada para identificar y aprovechar esta debilidad, mostrando cómo un atacante podría, con una firma válida, suplantar la identidad de cualquier usuario.
Para prevenir posibles explotaciones, se aconseja a las organizaciones revisar sus registros de inicio de sesión en busca de actividades sospechosas que originen de ubicaciones no habituales de los usuarios.
Dado que las interrupciones en los procesos de validación de firmas son comunes en la implementación de SAML, el desarrollo de software seguro demanda actualizaciones continuas y la revisión constante de cómo se manejan las bibliotecas de seguridad. La atención a estos detalles es crucial para mantener protegidos los sistemas contra amenazas emergentes.