Des mises à jour correctives de la plateforme pour l'organisation de développement collaboratif GitLab — 17.9.2, 17.8.5 et 17.7.7, ont été publiées, corrigeant une vulnérabilité (CVE-2025-25291, CVE-2025-25292) permettant de contourner l'authentification basée sur SAML (Security Assertion Markup Language). La vulnérabilité est présente dans la bibliothèque Ruby ruby-saml, qui implémente des fonctionnalités pour l'autorisation SAML. En plus de GitLab, la vulnérabilité affecte d'autres projets utilisant cette bibliothèque. Le problème a été résolu dans les mises à jour ruby-saml 1.18.0 et 1.12.4.
La vulnérabilité est causée par des différences dans l'analyse des documents XML par les parseurs ReXML et Nokogiri, entraînant la génération de documents de structure différente lors du traitement du même document XML. Le problème réside dans le fait que REXML et Nokogiri traitent différemment les signatures numériques dans un document XML, ce qui peut être exploité pour créer des conditions où une signature est utilisée pour la vérification, tandis qu'une autre est utilisée pour l'attestation de l'utilisateur. Cette possibilité permet à un attaquant d'utiliser la méthode d'attaque XSW (XML Signature Wrapping) pour falsifier une réponse SAML pour un contenu quelconque, ayant accès à tout document SAML signé.
Le problème a été identifié grâce à une initiative de GitHub, qui envisageait de migrer GitHub vers l'utilisation de cette bibliothèque et a organisé un concours de sécurité (Bug bounty) sur un environnement de test utilisant la bibliothèque ruby-saml pour l'authentification SAML. Un des chercheurs en sécurité a remarqué la présence de la vulnérabilité. Lors de l'examen du problème, un employé de GitHub a découvert une autre méthode d'attaque basée sur le même principe.
Par la suite, la possibilité de l'attaque a été confirmée pour GitLab. Dans le contexte de GitLab, la vulnérabilité permet à un attaquant ayant accès à tout document SAML correctement signé de s'authentifier en tant qu'autre utilisateur, c'est-à-dire que pour contourner l'authentification et se connecter en tant qu'autre utilisateur, l'attaquant doit déjà avoir accès à l'un des comptes de travail valides.
Source : opennet.ru
