Add your offcanvas content in here

Das Unternehmen

Simplifying your IT-security journey.

Wissen & News

Missing authentication check for emergency access

März 11, 2024 |
Tags: SAST SCA
Kategorie: CVE News

Vaultwarden-Sicherheitslücke beim Notfallzugriff

In der digitalen Welt von heute ist der Schutz sensibler Zugangsdaten von entscheidender Bedeutung, besonders wenn es um Notfallfunktionen in Passwortmanagern wie Vaultwarden geht. Im Rahmen eines Projekts für das Bundesamt für Sicherheit in der Informationstechnik (BSI) haben wir Vaultwarden und weitere Open-Source-Lösungen umfassend auf Sicherheitslücken geprüft. Dabei wurde eine kritische Schwachstelle im Bereich Notfallzugriff identifiziert.

Die Sicherheitslücke betraf Vaultwarden bis einschließlich Version 1.30.3 und ermöglichte es Begünstigten, nach dem Start eines Notfallzugriffs eigenständig die Zugriffsbedingungen anzupassen. Dadurch war es möglich, sich, entgegen der Vorgabe des Berechtigunggebers, höhere Zugriffsrechte zu verschaffen oder die vorgeschriebene Wartezeit zu umgehen. Das hätte im Ernstfall zu einer ungewollten vollständigen Kontoübernahme führen können.

Wir haben diese Schwachstelle gemeldet und die Entwickler haben die Lücke umgehend behoben und mit Version 1.32.0 für den notwendigen Schutz gesorgt.

In diesem Beitrag erfahren Sie, wie genau die Schwachstelle entstand und warum regelmäßige Überprüfungen selbst etablierter Sicherheitslösungen so wichtig sind. Sie möchten wissen, ob Ihre Systeme betroffen sind und wie Sie sich optimal absichern? Nutzen Sie unsere Expertise – wir unterstützen Sie gerne bei allen Fragen rund um Ihre IT-Sicherheit.

In Vaultwarden Version 1.30.3 (oder früher) wurde eine fehlende Authentifizierungsprüfung festgestellt, die es ermöglichte, die Metadaten eines Notfallzugriffs zu ändern. Wir haben diese Schwachstelle dem Entwickler gemeldet, der das Problem behoben und die Schwachstelle in Version 1.32.0 behoben hat.

Sobald der Notfallzugriff initiiert wurde, konnte der Begünstigte die Zugriffsbedingungen ändern, einschließlich der Zugriffsebene und der Wartezeit. Dadurch kann der Begünstigte mit einer höheren Zugriffsebene (vollständige Kontoübernahme statt nur Lesezugriff) und ohne Ablauf der festgelegten Wartezeit (standardmäßig 7 Tage) auf die Daten des Berechtigers zugreifen. Dadurch wird die vom Berechtiger festgelegte Zugriffsbeschränkung unwirksam. Diese Schwachstelle in der Zugriffskontrolle betrifft nur den API-Endpunkt zum Ändern des Notfallzugriffs. Am Endpunkt zum Erstellen des Notfallzugriffs überprüft Vaultwarden die Benutzerberechtigungen korrekt. Die Ausnutzbarkeit dieses Befundes beschränkt sich daher darauf, dass der designierte Begünstigte höhere Berechtigungen für den Zugriff auf die Daten des Berechtigunggebers erhält. Es wurden keine Schwachstellen gefunden, die die unbefugte Erstellung eines Notfallzugriffs für einen bestimmten Benutzer ermöglichen.

Beschreibung

Der Notfallzugriff ist eine Funktion von Vaultwarden, mit der ein Benutzer (Berechtigunggeber) einen vertrauenswürdigen Kontakt (Begünstigter) benennen kann, der im Notfall Zugriff auf seine Tresordaten anfordern kann.

Bei der Einrichtung eines Notfallzugangs kann der Berechtigungsgeber einige Bedingungen für den gewährten Zugang festlegen, darunter

  • Zugriffsebene: Legt fest, ob der Berechtigte nur Lesezugriff auf die Daten des Berechtigungsgebers hat oder ob der Berechtigte das Konto des Berechtigungsgebers übernehmen darf.
  • Wartezeit: Legt fest, wie lange der Berechtigte nach Einleitung des Notfallzugangs warten muss, um auf die Daten des Berechtigungsgebers zugreifen zu können. Diese Wartezeit gibt dem Berechtigunggeber ein Zeitfenster, in dem er den Notfallzugriff widerrufen kann.

Weitere Informationen zum Notfallzugriff von Vaultwarden finden Sie auf der Seite zum Notfallzugriff des Upstream-Bitwarden-Servers.

Sobald der Notfallzugriff initiiert wurde, können seine Metadaten über den API-Endpunkt PUT /api/emergency-access/<access_UUID> geändert werden. Auf diese Weise kann der Berechtigunggeber die von ihm erstellten Notfallzugriffsbedingungen ändern, einschließlich der Zugriffsebene und der Wartezeit.

Es wurde festgestellt, dass Vaultwarden an diesem API-Endpunkt keine Zugriffskontrolle durchführt. Unsere Tests haben gezeigt, dass selbst ein nicht authentifizierter Benutzer den Notfallzugriff mit beliebigen Daten ändern kann, wenn die Zugriffs-UUID bekannt ist. Der folgende Screenshot veranschaulicht das Problem.

Um einen Notfallzugriff zu ändern, muss die gültige Zugriffs-UUID als Anfrageparameter angegeben werden. Vaultwarden verwendet UUID Version 4 für Entitäts-IDs, die schwer zu enumerieren sind. Dennoch konnte der Begünstigte diese Informationen in der Benachrichtigungs-E-Mail finden:

Der betroffene Quellcode ist hier zu finden: https://github.com/dani-garcia/vaultwarden/blob/1.30.3/src/api/core/emergency_access.rs#L115-L148

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

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

Angriffstyp: Remote

Angriffsvektoren: Um die Schwachstelle auszunutzen, muss einem böswilligen Benutzer ein „niedriger” Notfallzugriff auf den Tresor eines anderen Benutzers gewährt werden.

Referenz:
https://github.com/dani-garcia/vaultwarden/pull/4715
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.