Korrektur-Updates für die GitLab-Plattform für die kollaborative Entwicklung wurden veröffentlicht – 17.9.2, 17.8.5 und 17.7.7. In diesen Updates wurde eine Schwachstelle (CVE-2025-25291, CVE-2025-25292) behoben, die eine Umgehung der SAML-basierten Authentifizierung (Security Assertion Markup Language) ermöglichte. Diese Schwachstelle ist in der Ruby-Bibliothek ruby-saml vorhanden, die Funktionen für die SAML-Authentifizierung implementiert. Neben GitLab betrifft die Schwachstelle auch andere Projekte, die diese Bibliothek verwenden. Das Problem wurde in den Updates ruby-saml 1.18.0 und 1.12.4 behoben.
Die Schwachstelle wird durch Unterschiede bei der Verarbeitung von XML-Dokumenten durch die Parser ReXML und Nokogiri verursacht, wodurch beim Verarbeiten desselben XML-Dokuments unterschiedliche Dokumente generiert wurden. Das Problem besteht darin, dass REXML und Nokogiri digitale Signaturen in XML-Dokumenten unterschiedlich behandeln, was ausgenutzt werden kann, um Bedingungen zu schaffen, unter denen bei der Überprüfung eine Signatur und bei der Benutzerattestierung eine andere verwendet wird. Diese Möglichkeit ermöglicht es einem Angreifer, die XSW-Angriffs-Methode (XML Signature Wrapping) auszunutzen, um eine SAML-Antwort für beliebige Inhalte zu fälschen, wenn er Zugang zu einem beliebigen signierten SAML-Dokument hat.
Das Problem wurde im Rahmen einer Initiative von GitHub festgestellt, die die Möglichkeit der Migration von GitHub zu dieser Bibliothek prüfte und zu Sicherheitsüberprüfungszwecken einen Wettbewerb (Bug Bounty) zur Ausnutzung einer Testumgebung organisierte, in der die Bibliothek ruby-saml für die SAML-Authentifizierung verwendet wurde. Ein Sicherheitsexperte entdeckte dabei eine Schwachstelle. Während der Analyse des Problems identifizierte ein Mitarbeiter von GitHub einen weiteren Angriffsvektor, der auf demselben Prinzip basierte.
In der Folge wurde die Möglichkeit eines Angriffs auch für GitLab bestätigt. Im Kontext von GitLab ermöglicht die Schwachstelle einem Angreifer, der Zugriff auf ein korrekt signiertes SAML-Dokument hat, sich als ein anderer Benutzer zu authentifizieren. Das bedeutet, um die Authentifizierung zu umgehen und sich als jemand anderes einzuloggen, muss der Angreifer bereits Zugang zu einem der aktiven Benutzerkonten haben.
Quelle: opennet.ru
