Im Zentrum des Problems steht die Installationslogik von GX Mods. Diese Modifikationen verändern in Opera GX unter anderem Sounds, Themes, Hintergründe und per CSS auch das Erscheinungsbild besuchter Websites. Sie werden als .crx-Dateien ausgeliefert, ähnlich wie Browser-Erweiterungen, können aber kein JavaScript ausführen und besitzen keine Berechtigungen.
Die Schwachstelle lag laut den Forschern darin, dass Operas Mod-Pipeline einen Mod automatisch herunterlädt und aktiviert, ohne einen Zustimmungsdialog anzuzeigen. Eine präparierte Website konnte daher still einen Mod installieren, etwa über ein verstecktes iframe, das auf eine .crx-Datei zeigt. Das einzige sichtbare Signal war eine Benachrichtigungsleiste unterhalb der Adresszeile, die auf den hinzugefügten Mod hinweist und eine Schaltfläche zum Entfernen anbietet.
Neu war dieses Auto-Install-Verhalten nicht. Der Forscher Renwa hatte es bereits 2023 identifiziert und damals gezeigt, wie sich ein installierter Mod zu einer vollwertigen Erweiterung ausbauen ließ, um die Adressleiste des Browsers zu fälschen. Opera schloss diesen konkreten Angriffsweg im März 2023, ließ aber die zugrunde liegende automatische Installation bestehen. Genau darauf baut die neue Untersuchung auf.
Entscheidend war die Reichweite des installierten CSS. Anders als gewöhnliche CSS-Injektionen, die auf eine einzelne Seite beschränkt bleiben, wirkte das Styling eines solchen Mods auf jede Website, die der Browser öffnete. Die Forscher bezeichnen das als universelle CSS-Injektion. CSS kann Inhalte nicht direkt auslesen und versenden, aber über Attributselektoren lässt sich prüfen, ob ein Attributwert mit bestimmten Zeichen beginnt. Nur wenn eine Bedingung zutraf, lud der Browser etwa ein Hintergrundbild vom Server des Angreifers. Mit genügend solcher Abfragen konnte ein Wert Zeichen für Zeichen rekonstruiert werden. Die Forscher ordnen das als XS-Leak ein, also als seitenübergreifendes Datenleck.
Für den Nachweis zielten sie auf die Google-Kontoseite myaccount.google.com/contactemail, auf der die E-Mail-Adresse in drei HTML-Attributen enthalten war. Zunächst experimentierten sie mit Vier-Zeichen-Stücken, was 5,6 Millionen Regeln und rund 880 MByte CSS erforderte. Weil der Browser damit überfordert war, reduzierten sie die Methode auf sich überlappende Drei-Zeichen-Stücke. Der eingesetzte Mod enthielt so rund 150.000 CSS-Regeln, aus deren Treffern ein Skript die Adresse wieder zusammensetzte.
Der Ablauf war laut Bericht knapp, aber ohne Benutzerinteraktion möglich: Das Opfer besucht die Angreiferseite, der Mod wird innerhalb von Sekunden installiert, danach leiten wenige Zeilen JavaScript den Browser auf die Google-Kontoseite um. Dort ist das CSS des Mods bereits aktiv und löst die Anfragen aus, während die Seite rendert — noch bevor das Opfer überhaupt die Zeit hat, die Entfernen-Schaltfläche der Benachrichtigung zu nutzen. Die Gmail-Adresse war nur der Vorführfall; nach Angaben der Forscher lassen sich auf dieselbe Weise auch andere Werte auslesen, die eine Seite in ihrem Markup offenlegt, etwa ein Benutzername.
Die Forscher dokumentierten zudem einen zweiten, groberen Effekt derselben Installationsroute: Wird im privaten Modus eine .crx-Datei geladen, stürzt der Browser ab und verwirft alle offenen Tabs. Das betrifft nicht nur Opera GX, sondern auch den regulären Opera-Browser, weil jede .crx-Datei die Erweiterungs-Installationspipeline auslöst, unabhängig von ihrem Inhalt. Operas Sicherheitshinweis behandelt allerdings nur die Lücke zum Datendiebstahl und erwähnt den Absturz nicht.
Fast wäre der Bericht im Bug-Bounty-Prozess niedriger bewertet worden. Opera betreibt das Programm über Bugcrowd, und die Analysten im Triage-Prozess stuften den Fehler zunächst als P3 ein. Die Forscher überzeugten schließlich, indem sie während der Reproduktion die Drei-Zeichen-Fragmente der Gmail-Adresse eines Analysten abgriffen, die Adresse rekonstruierten und in den Bericht einfügten. Daraufhin erhöhte Operas Team die Einstufung auf P1 und zahlte die maximale Prämie von 5.000 US-Dollar.
Opera formuliert den Vorfall in seinem Hinweis zurückhaltender und betont, der Angriff sei kompliziert umzusetzen gewesen: Das Opfer müsse eine bösartige Website besuchen, einen neuen Mod erhalten und die Entfernen-Benachrichtigung lange genug ignorieren, damit die Weiterleitung greift. Die Demonstration der Forscher stellt das in Frage, weil die Umleitung bereits in den wenigen Sekunden vor dem Lesen der Meldung erfolgte. Opera erklärt zugleich, man habe keine Hinweise auf eine Ausnutzung in freier Wildbahn gefunden.
