Auf der Konferenz DEF CON 33 wurde eine Angriffsmethode auf Browsererweiterungen vorgestellt, die ihre Benutzeroberflächenelemente in die angezeigte Seite einfügen. Das Anwenden des Angriffs auf Erweiterungen mit Passwortmanagern kann zu einer Offenlegung von Informationen führen, die in den Passwortmanagern gespeichert sind, wie z.B. Authentifizierungsparameter, Kreditkartendaten, persönliche Informationen und einmalige Passwörter für die Zwei-Faktor-Authentifizierung. Das Problem betrifft alle getesteten Passwortmanager, einschließlich 1Password, Bitwarden, LastPass, KeePassXC-Browser, NordPass, ProtonPass und Keeper.
Die Angriffsmethode basiert darauf, dass Browsererweiterungen direkt einen Dialog zur Aufforderung zur automatischen Passwortausfüllung auf die angezeigte Seite einfügen und ihre Elemente in das DOM (Document Object Model) dieser Seite integrieren. Wenn der Angreifer den Zugriff auf seinen JavaScript-Code auf der Seite hat, z.B. durch Ausnutzen einer XSS-Sicherheitslücke auf der Website, kann er alle Elemente im DOM manipulieren, einschließlich der durch die Browsererweiterungen eingefügten.
Unter anderem besteht die Möglichkeit, den Bestätigungsdialog transparent zu machen und die Schaltfläche in diesem Dialog mit der Schaltfläche des gefälschten Dialogs, der von dem Angreifer erstellt wurde und den Benutzer zum Klicken anregt, räumlich zu kombinieren. Solche gefälschten Dialoge können gefälschte Berechtigungsanfragen zur Verarbeitung von Cookies, Werbebanner oder Formulare mit Captchas sein. Indem man den gefälschten Dialog hinter dem transparenten Dialog des Passwortmanagers platziert und die Position der Schaltflächen auf dem Bildschirm anpasst, kann erreicht werden, dass der Klick des Benutzers auf die Schaltfläche zur Bestätigung der Authentifizierungsparameter im Dialog des Passwortmanagers gerichtet wird, obwohl der Benutzer glaubt, er hätte beispielsweise auf die Schaltfläche zum Schließen des Werbefensters geklickt.

Der Angriff lässt sich in folgende Schritte unterteilen:
- Ein aufdringliches Element auf der Seite erstellen, das den Klick anregt.
- Ein Web-Formular zum Einloggen oder Ausfüllen persönlicher Daten auf die Seite hinzufügen.
- Die Transparenz für das Web-Formular festlegen („opacity: 0.001“ in CSS).
- Die Methode focus() verwenden, um den Eingabefokus auf ein Feld im Formular zu setzen, was den Dialog zur automatischen Ausfüllung des Passwortmanagers aktiviert.
- Den plötzlich auftauchenden Dialog des Passwortmanagers im DOM finden und die Transparenz dafür festlegen.
- Warten auf den Klick eines Benutzers auf einem sichtbaren aufdringlichen Element auf der Seite, das bei entsprechender Kombination von sichtbaren und unsichtbaren Elementen zu einem Klick auf die Schaltfläche in einem transparenten Dialogfeld und zum Ausfüllen der Felder durch den Passwortmanager führt.
- Extraktion von Daten aus dem ausgefüllten Webformular und Übertragung dieser Daten an den Server des Angreifers.
Da die automatische Vervollständigung der Authentifizierungsparameter im Passwortmanager nur für Websites aktiviert wird, auf denen diese Parameter gespeichert wurden, ist es notwendig, JavaScript-Code auf der angegriffenen Website oder in einem Subdomain auszuführen, um den Angriff zu organisieren. Daher muss man entweder ein Subdomain im gleichen Domain wie die angegriffene Website erhalten oder eine XSS-Sicherheitsanfälligkeit auf der Website finden, die es ermöglicht, eigenen Code in die dem Benutzer angezeigten Inhalte einzufügen.
Es wird festgestellt, dass viele Benutzer einen Passwortmanager sowohl zum Speichern von Anmeldedaten als auch zur Generierung von Einmalpasswörtern für die Zwei-Faktor-Authentifizierung verwenden, was es ermöglicht, die betrachtete Angriffsmethode bei der automatischen Vervollständigung von Einmalpasswörtern anzuwenden. Als Beispiel wurde ein Angriff auf die Website issuetracker.google.com demonstriert, die eine XSS-Sicherheitsanfälligkeit enthält. Um die Anmeldedaten und den Code für die Zwei-Faktor-Authentifizierung zu erhalten, reicht es aus, dem Benutzer einen Link zu senden, der die XSS-Sicherheitsanfälligkeit ausnutzt, und drei Klicks durch das Ersetzen von fiktiven aufdringlichen Anfragen zu erreichen (Zustimmung zur Verarbeitung von Cookies, Zustimmung zur Personalisierung und Zustimmung zur Datenschutzrichtlinie).
Neben Websites mit XSS-Sicherheitsanfälligkeiten kann der Angriff auch auf Dienste durchgeführt werden, die Subdomains für jedermann bereitstellen – die meisten Passwortmanager füllen in der Standardkonfiguration die Anmeldedaten nicht nur für die Hauptdomain, sondern auch für Subdomains aus.
Ein Angriff kann auch verwendet werden, um die im Passwort-Manager gespeicherten persönlichen Daten des Benutzers und Kreditkartenparameter zu identifizieren. Dabei ist es nicht notwendig, JavaScript-Code im Kontext einer fremden Website auszuführen; es reicht aus, das Opfer auf die Seite der angreifenden Website zu locken – bei persönlichen Daten erfolgt die Eingabe von Webformularen basierend auf ihrem Typ (Adresse, Kreditkartennummer, Name), ohne Bezug zu Domain. Am gefährlichsten ist die Offenlegung der Kreditkartenparameter, da Passwort-Manager nicht nur die Kartennummer, sondern auch das Ablaufdatum und den Sicherheitscode einfügen.
Der Forscher, der das Problem identifiziert hat, testete 11 Browsererweiterungen mit Passwort-Managern, die insgesamt 39,7 Millionen aktive Installationen umfassen, und alle waren gegen diesen Angriffsvektor ungeschützt. Einige Hersteller haben Updates veröffentlicht (NordPass 5.13.24, ProtonPass 1.31.6, RoboForm 9.7.6, Dashlane 6.2531.1, Keeper 17.2.0, Enpass 6.11.6, Bitwarden 2025.8.1), in denen sie versuchten, den Angriff über Umgehungsmaßnahmen zu blockieren. Andere Erweiterungen (KeePassXC-Browser, 1Password, iCloud Passwords, Enpass, LastPass, LogMeOnce) sind bisher ohne Korrektur geblieben. Zur Überprüfung des Auftretens der Schwachstelle in verschiedenen Passwort-Managern wurde eine Reihe von Testseiten veröffentlicht.


Die Position der Entwickler von 1Password, die keinen Patch veröffentlicht haben, besagt, dass die Schwachstelle fundamental ist und nicht direkt mit einer bestimmten Browsererweiterung zusammenhängt. Daher blockieren Versuche, sie auf der Seite der Erweiterung zu beheben, nur einzelne Angriffsvektoren, beseitigen jedoch nicht das eigentliche Problem, das im Browser oder durch eine Anfrage zur Bestätigung vor dem automatischen Ausfüllen von Feldern gelöst werden muss. Es wird erwähnt, dass 1Password bereits die Anzeige einer Bestätigungsanfrage vor dem automatischen Ausfüllen von Zahlungsparametern unterstützt und in der nächsten Version die Option zur Anzeige einer solchen Anfrage für alle Arten von automatisch ausfüllbaren Daten hinzugefügt wird (aufgrund der Beeinträchtigung der Benutzerfreundlichkeit wird diese Option nicht standardmäßig aktiviert).
Unter den vom Autor der Studie vorgeschlagenen Schutzmethoden wird das Tracking von Änderungen an den auf der Seite eingefügten Elementen mittels der API MutationObserver, das Blockieren von Änderungen über den Shadow DOM im „closed“-Modus, die Überwachung der Transparenzeinstellungen von Elementen, die Verwendung der API Popover zur Anzeige von Dialogfenstern sowie die Prüfung auf Überlappungen von Layern erwähnt. Außerdem wird das vorübergehende Deaktivieren der Ereignisverarbeitung für Zeiger (pointer-events:none) in allen schwebenden Elementen während der Anzeige des Passwortmanager-Diaglogs empfohlen. Um die beschriebene Klasse vollständig zu blockieren, wird auf Browserebene empfohlen, eine spezielle API zum Schutz zu implementieren, um Clickjacking zu verhindern.
Als universelle Schutzmaßnahme wird Nutzern von Browsern, die auf der Chromium-Engine basieren, empfohlen, den Modus zur Bestätigung des Zugriffs von Erweiterungen auf die Website zu aktivieren (Erweiterungseinstellungen → „site access“ → „on click“), bei dem die Erweiterung erst nach einem Klick auf das Symbol in der rechten oberen Ecke der Adressleiste Zugriff auf die Website erhält. Als Umgehungsschutz wird zudem das Deaktivieren von automatischem Ausfüllen von Formularen und das manuelle Kopieren von Passwörtern über die Zwischenablage erwähnt, wobei jedoch das Problem der Datenleckage aus der gemeinsamen Zwischenablage und die Gefahr besteht, Phishing-Versuche zu übersehen.
Quelle: opennet.ru
