Descripción general El 10 de septiembre de 2024, un hacker1 de SecureSAML identificó una vulnerabilidad crítica, CVE-2024-45409. Luego, la vulnerabilidad se parchó en la biblioteca Ruby-SAML, que se usa ampliamente para implementar la autorización SAML (Security Assertion Markup Language). Esta falla afecta a las versiones de Ruby-SAML hasta 1.12.2 y entre 1.13.0 y 1.16.0 y se debe a un selector XPath incorrecto que impide la verificación adecuada de la firma de respuesta SAML. Un atacante no autenticado con acceso a un documento SAML firmado por un proveedor de identidad (IdP) legítimo puede aprovechar esta vulnerabilidad falsificando una respuesta o aserción SAML. Esto permite al atacante eludir el mecanismo de autenticación y potencialmente obtener acceso no autorizado a datos confidenciales y sistemas críticos. SAML se utiliza ampliamente en aplicaciones web, especialmente aquellas que implementan mecanismos de inicio de sesión único (SSO) para la autenticación de usuarios en diferentes plataformas o servicios. También se utiliza en múltiples versiones de GitLab Community Edition (CE) y Enterprise Edition (EE). El 17 de septiembre de 2024, GitLab publicó una actualización importante para abordar la vulnerabilidad crítica identificada en la biblioteca Ruby-SAML. Esta actualización afecta múltiples versiones de GitLab Community Edition (CE) y Enterprise Edition (EE), específicamente aquellas lanzadas antes de 17.3.3, 17.2.7, 17.1.8, 17.0.8 y 16.11.10. Se recomienda encarecidamente a los usuarios que actualicen a estas versiones parcheadas para protegerse de una posible explotación de esta vulnerabilidad. Tras el parche de GitLab, los investigadores de ProjectDiscovery proporcionaron un análisis detallado de la vulnerabilidad SAML y demostraron cómo podría explotarse para obtener acceso no autorizado a cuentas de GitLab. La siguiente figura muestra la demostración en video de POC obteniendo acceso no autorizado a una cuenta de GitLab. Figura 1: POC para obtener acceso no autorizado a cuentas de GitLab En medio de estos hallazgos, Cyble Global Sensor Intelligence (CGSI) identificó un intento de escaneo asociado con CVE-2024-45409. Hallazgos de Cyble Global Sensor Intelligence (CGSI) El 8 de octubre de 2024, Cyble Global Sensor Intelligence (CGSI) identificó intentos de explotar la vulnerabilidad recientemente revelada, CVE-2024-45409. El análisis de los patrones de URL detectados sugiere que los actores de amenazas pueden estar escaneando activamente en busca de cuentas vulnerables de GitLab para explotar esta falla en particular. Esta actividad sugiere una posible campaña en curso destinada a explotar CVE-2024-45409, que podría implicar un sondeo sistemático de instancias de GitLab para identificar puntos de entrada. Figura 2: Intentos de explotación observados a través de la red CGSI Detalles de la vulnerabilidad Omisión de autenticación CVE-2024-45409 CVSSv3.1 9.8 Versiones de software vulnerables de gravedad crítica Ruby-SAML en <= 12.2 y 1.13.0 <= 1.16.0 Descripción La biblioteca Ruby SAML es para implementar el lado del cliente de una autorización SAML. Ruby-SAML en <= 12.2 y 1.13.0 <= 1.16.0 no verifica correctamente la firma de la respuesta SAML. Por lo tanto, un atacante no autenticado con acceso a cualquier documento saml firmado (por el IdP) puede falsificar una respuesta/afirmación SAML con contenido arbitrario. Esto permitiría al atacante iniciar sesión como un usuario arbitrario dentro del sistema vulnerable. Detalles técnicos SAML es un protocolo ampliamente adoptado para intercambiar datos de autenticación y autorización entre proveedores de identidad (IdP) y proveedores de servicios (SP). Un aspecto vital para asegurar este intercambio es verificar la integridad y autenticidad de los datos mediante firmas digitales y verificación de resumen. CVE-2024-45409 introduce una vulnerabilidad que permite a los atacantes eludir el proceso de validación de firmas, siempre que obtengan la respuesta SAML emitida por el proveedor de identidad. Un atacante con acceso a cualquier documento SAML firmado puede falsificar una respuesta o aserción SAML insertando su propio valor de resumen dentro del elemento samlp:extensions. Esta alteración engaña al analizador XPath, lo que hace que extraiga el DigestValue de contrabando del elemento samlp:extensions en lugar del del bloque SignedInfo. Como resultado, el atacante elude la verificación de la firma, lo que le permite autenticar su propia afirmación falsificada y eludir efectivamente el mecanismo de autenticación. Conclusión CVE-2024-45409 presenta un riesgo significativo en la biblioteca Ruby-SAML. Permite a los atacantes falsificar respuestas SAML y obtener acceso no autorizado a los sistemas debido a una verificación inadecuada de la firma de la respuesta SAML. Esta vulnerabilidad pone de relieve la necesidad urgente de actuar, sobre todo porque GitLab, una plataforma ampliamente utilizada, es especialmente susceptible a este problema. Además, la reciente detección de intentos de explotación por parte de CGSI subraya aún más la gravedad de esta amenaza. Mitigación GitLab recomienda a los usuarios autoadministrados que implementen dos medidas de mitigación para disminuir el riesgo de explotación: Habilitar la autenticación de dos factores para todas las cuentas de usuario en la instancia de GitLab autoadministrada. (Nota: activar la autenticación multifactor en el proveedor de identidad no soluciona esta vulnerabilidad). Deshabilite la opción de omisión de dos factores SAML dentro de GitLab. Recomendaciones Actualice la biblioteca Ruby-SAML a la última versión, donde se ha parcheado la vulnerabilidad. Asegúrese de que la autenticación multifactor (MFA) esté habilitada en sus cuentas para agregar una capa adicional de seguridad. Las organizaciones deben llevar a cabo periódicamente concientización sobre seguridad y capacitación en seguridad de la información para los empleados. Referencias https://blog.projectdiscovery.io/ruby-saml-gitlab-auth-bypass https://github.com/advisories/GHSA-jw9c-mfg7-9rx2 https://about.gitlab.com/releases/2024 /09/17/parche-lanzamiento-gitlab-17-3-3-lanzado