Add your offcanvas content in here

Das Unternehmen

Simplifying your IT-security journey.

Wissen & News

Missing rotation of the organization key

April 11, 2024 |
Tags: SAST SCA
Kategorie: CVE News

Schwachstelle beim Zugriffsmanagement von Vaultwarden

Gerade in Zeiten zunehmender Cyberkriminalität ist der Schutz sensibler Unternehmensdaten wichtiger denn je. Vielleicht verlassen Sie sich bereits auf Passwortmanager wie Vaultwarden, um Ihre Organisationsdaten sicher zu speichern und zu verwalten. Doch selbst bewährte Lösungen können Schwachstellen aufweisen.

Im Auftrag des Bundesamts für Sicherheit in der Informationstechnik (BSI) haben wir die Open-Source-Anwendung Vaultwarden intensiv überprüft. Mit modernsten Methoden wie der Statischen Codeanalyse und gezielten dynamischen Analysen (Pentests) sind wir tief in die Sicherheit dieser Lösungen eingestiegen.

Dabei haben wir eine sicherheitskritische Lücke in Vaultwarden entdeckt: Ehemals berechtigte Nutzer konnten trotz Entzugs ihrer Zugriffsrechte weiterhin auf vertrauliche Organisationsdaten zugreifen, auch auf solche, die nach dem Rechteentzug neu hinzugefügt wurden. Diese Schwachstelle haben wir an die Entwickler gemeldet. Die aktuelle Version 1.32.0 von Vaultwarden schließt die Lücke und sorgt wieder für umfassenden Schutz.

In diesem Blogbeitrag erfahren Sie, wie diese Schwachstelle entstand, welche Folgen sie für Ihr Unternehmen haben könnte und wie Sie sich und Ihre Daten effektiv schützen. Setzen Sie auf Transparenz und Sicherheit: Bleiben Sie informiert, um Risiken frühzeitig zu erkennen und zu minimieren! Nutzen Sie unsere Expertise, sprechen Sie uns an, wenn Sie Fragen haben oder Unterstützung bei der Absicherung Ihrer Systeme benötigen!

In Vaultwarden Version 1.30.3 (oder früher) wurde eine fehlende Rotation des Organisationsschlüssels festgestellt, wodurch trotz widerrufener Zugriffsrechte weiterhin Zugriff auf Organisationsgeheimnisse möglich war. Wir haben diese Sicherheitslücke dem Entwickler gemeldet, der das Problem behoben und die Sicherheitslücke in Version 1.32.0 geschlossen hat.

Benutzer, deren Zugriff auf eine Organisation widerrufen wurde, konnten weiterhin auf Daten dieser Organisation zugreifen, einschließlich Daten, die nach dem Widerruf des Benutzerzugriffs hinzugefügt wurden.

Beschreibung

Vaultwarden ermöglicht es Mitgliedern einer Organisation, Daten (Geheimnisse) miteinander zu teilen. Um diese Funktion zu implementieren, werden alle Organisationsdaten mit demselben symmetrischen Schlüssel (im Folgenden als Organisationsschlüssel bezeichnet) verschlüsselt, bevor sie auf dem Server gespeichert werden. Jedes Mitglied der Organisation, das über Zugriffsrechte auf die Organisationsdaten verfügt, erhält diesen gemeinsamen Organisationsschlüssel über einen Schlüsselverteilungsmechanismus, der während des Onboarding-Prozesses des Benutzers stattfindet.

Es gibt zwar einen Onboarding-Prozess, aber die Anwendung bietet keinen „Offboarding”-Prozess für Mitglieder, die die Organisation verlassen. Daher wird der gemeinsame Organisationsschlüssel nicht rotiert, wenn ein Mitglied die Organisation verlässt. Folglich könnte ein böswilliges ausscheidendes Mitglied, dessen Zugriff eigentlich widerrufen werden sollte, eine gültige Kopie des Organisationsschlüssels behalten.

Das Fehlen einer Rotation des Organisationsschlüssels kann mit den folgenden Schritten bestätigt werden:

  1. Erstellen Sie eine Organisation mit mehreren Mitgliedern und Geheimnissen.
  2. Notieren Sie sich die auf dem Server gespeicherten verschlüsselten Geheimnisse.
  3. Widerrufen Sie den Zugriff einiger Organisationsmitglieder.
  4. Beobachten Sie, dass sich die in Schritt 2 gesammelten verschlüsselten Geheimnisse nach Schritt 3 nicht geändert haben.

Darüber hinaus schützt Vaultwarden die auf dem Server gespeicherten verschlüsselten Benutzerdaten nicht ausreichend. Ein authentifizierter Benutzer kann unbefugten Zugriff auf verschlüsselte Daten einer beliebigen Organisation erhalten, auch wenn er kein Mitglied der betreffenden Organisation ist. Der folgende Screenshot veranschaulicht das Problem. Hier ist der anfragende Benutzer kein Mitglied der betreffenden Organisation, dennoch werden die Daten zurückgegeben.

Durch zusätzliche Ausnutzung dieses unbefugten Zugriffs könnte ein Mitglied, das eine Organisation verlassen hat, weiterhin verschlüsselte Daten dieser Organisation abrufen. In Kombination mit dem Organisationsschlüssel, den der böswillige Benutzer aufbewahrt hat, könnte der Benutzer die abgerufenen Daten entschlüsseln und unbefugten Zugriff auf alle Geheimnisse der Organisation (im Klartext) erhalten. Dieser unbefugte Zugriff umfasst auch die Geheimnisse, die nach dem Austritt des Benutzers erstellt/aktualisiert wurden.

Dieser Angriffsvektor kann mit den folgenden Schritten bestätigt werden:

Zunächst erhält ein Testbenutzer (Mallory – der Angreifer) Zugriff auf eine Organisation namens Foobar.

Zu diesem Zeitpunkt hat Mallory Zugriff auf den Organisationsschlüssel. Sie notiert sich außerdem die Organisations-ID und den (verschlüsselten) Schlüssel aus der Antwort des Endpunkts GET /api/sync.

Als Nächstes entfernt Alice (eine Organisationsadministratorin) Mallorys (dem Angreifer) Zugriff auf die Organisation Foobar. Nach diesem Schritt hat Mallory keinen Zugriff mehr auf die Organisationsdaten.

Alice fügt dann neue Geheimnisse zur Organisation Foobar hinzu.

An dieser Stelle konnte über die Benutzeroberfläche der Anwendung bestätigt werden, dass Mallory keinen Zugriff mehr auf die Organisation Foobar hat.

Mallory nutzt dann den oben beschriebenen unbefugten Zugriff auf die verschlüsselten Organisationsdaten aus und ruft die neu hinzugefügten (verschlüsselten) Geheimnisse aus der Organisation Foobar ab.

Mallory muss nun die verschlüsselten Geheimnisse mit dem ursprünglichen, nicht rotierten Organisationsschlüssel entschlüsseln. Dies kann auf verschiedene Weise geschehen:

  • Gemäß dem Bitwarden-Whitepaper könnte Mallory den verschlüsselten Organisationsschlüssel mit seinem persönlichen Verschlüsselungsschlüssel entschlüsseln und dann den Klartext-Organisationsschlüssel zum Entschlüsseln der Organisationsdaten verwenden.
  • Mallory könnte den ausgetauschten Datenverkehr manipulieren und Bitwarden dazu bringen, die Daten für ihn zu entschlüsseln.

Für einen Proof-of-Concept wird Methode Nr. 2 verwendet.

Mallory führt einfach eine Aktualisierung durch und manipuliert die Antwort auf die Verschlüsselungssynchronisierungsanfrage (GET /api/sync). Da Mallory nun keinen Zugriff auf Geheimnisse hat, ist das Feld „Cipher“ im folgenden Screenshot leer. Da sein Zugriff auf die Organisation Foobar widerrufen wurde, ist auch das Feld „Organizations” leer. Mallory muss diese beiden Felder manuell mit Daten aus den vorherigen Schritten füllen:

  • Ciphers: mit einem Array verschlüsselter Daten, die er durch Ausnutzen des unbefugten Zugriffs auf verschlüsselte Organisationsdaten abgerufen hat.
  • Organizations: mit Metadaten der Organisation Foobar, über die er verfügte, als er noch Mitglied der Organisation war.

Nachdem die erforderlichen Felder ausgefüllt wurden, wird die Antwort an einen Bitwarden-Client weitergeleitet. Der Client führt automatisch die Entschlüsselung der Daten durch. Schließlich sieht Mallory die entschlüsselten Daten in der Benutzeroberfläche, mit allen Geheimnissen der Foobar-Organisation.

Zugewiesene CVE: https://nvd.nist.gov/vuln/detail/CVE-2024-39925

Betroffene Komponente: https://github.com/dani-garcia/vaultwarden/

Angriffstyp: Remote

Angriffsvektoren: Um die Schwachstelle auszunutzen, muss ein böswilliger Benutzer eine Kopie der Organisationsschlüssel der Organisationen aufbewahren, denen er angehört. Wenn der Benutzer dann die jeweilige Organisation verlässt, hat er weiterhin Zugriff auf alle Organisationsgeheimnisse (im Klartext).

Referenz:
https://github.com/BlackDex/vaultwarden/commit/94ce2786b93173ab36fb0ee24e111cbfde237c07
https://github.com/dani-garcia/vaultwarden/releases/tag/1.32.0

Der Autor

Mirko Richter

Mirko Richter ist Software-Security Berater, Sourcecode-Analyse-Spezialist und Schulungsleiter für Grundlagenschulungen bis hin zu Advanced-Coding- und Secure-SDLC-Trainings. Er beschäftigt sich seit Mitte der 90er-Jahre mit Softwareentwicklung, -architektur und -sicherheit. Er ist Sprecher auf Konferenzen und Autor mehrerer Fachartikel.