Gestohlener Cloudflare-Schlüssel machte Brevo-Widgets zum ClickFix-Verbreitungskanal

Angreifer nutzten einen gestohlenen Cloudflare-Key, um Brevo-Widgets zu manipulieren und ClickFix-Malware auf bis zu 100.000 Websites zu verbreiten.

Gestohlener Cloudflare-Schlüssel machte Brevo-Widgets zum ClickFix-Verbreitungskanal
Cloud Security

Illustration mit KI erzeugt

Brevo hat einen Supply-Chain-Angriff bestätigt, bei dem Angreifer Schadcode in auf Unternehmensservern gehostete Seiten und JavaScript-Komponenten einschleusen konnten, die auf Websites von Kunden eingebunden waren.

Dazu mussten die Angreifer die Origin-Server von Brevo nicht verändern. Stattdessen nutzten sie einen gestohlenen Cloudflare-API-Schlüssel, um einen schädlichen Worker zu erstellen, der HTTP-Antworten beim Durchlaufen des Cloudflare-Edge-Netzwerks umschrieb.

Die unbefugten Änderungen blieben am 14. September 2026 etwa fünfeinhalb Stunden lang aktiv. Das Sicherheitsunternehmen Sansec schätzte, dass bis zu 100.000 Websites mit betroffenen Brevo-Komponenten möglicherweise exponiert waren. Eine solche Exposition bedeutet jedoch nicht zwangsläufig, dass jede Website oder jeder Besucher kompromittiert wurde.

Manipulationen am Edge betrafen Brevo-Seiten und eingebettete Skripte

Brevo grenzte das primäre Zeitfenster der Exposition auf den 14. September von 16:07 bis 20:30 UTC ein. Sansec meldete ein leicht abweichendes Intervall von 16:05 bis 20:13 UTC.

Zu den betroffenen Seiten gehörten Inhalte, die über folgende Domains und Pfade ausgeliefert wurden:

  • brevo.com
  • sendinblue.com
  • login/account/my/onboarding.brevo.com
  • sibforms.com

Der Angriff erreichte auch Brevo-Ressourcen, die von Websites Dritter geladen wurden, darunter das Brevo-Forms-Skript, das Brevo-Conversations-Widget und die Loader-Skripte des Brevo-SDKs. Konkrete Versionen der Komponenten wurden nicht bekannt gegeben.

Dadurch reichte der Angriff über Personen hinaus, die direkt Brevo-Websites aufriefen. Jede Kunden-Website, die eine der manipulierten Komponenten lud, konnte zu einer indirekten Verbreitungsstelle für den Code der Angreifer werden.

Nach Angaben von Brevo waren mehrere zentrale Systeme nicht betroffen, darunter app.brevo.com, die API, die E-Mail-Zustellungsinfrastruktur und Kundendaten. Es gibt keine Hinweise darauf, dass die Angreifer Inhalte auf den Origin-Servern von Brevo verändert haben.

Sansec berichtete später, dass die schädlichen Subdomains am 15. September nicht mehr aufgelöst wurden und die betroffenen Brevo-Dateien bereinigt worden waren.

Fest im Quellcode hinterlegte Cloudflare-Zugangsdaten ermöglichten den Angriff

Die Angreifer erlangten einen langlebigen Cloudflare-API-Schlüssel, der fest im Quellcode der Anwendung hinterlegt war. Der Schlüssel verfügte über vollständige Kontoberechtigungen und nicht nur über eng begrenzte Zugriffsrechte.

Diese Berechtigungen ermöglichten das Erstellen von Cloudflare Workern, Routing-Regeln und DNS-Einträgen in den Brevo-Zonen. Laut Brevo löste diese Aktivität keinen Alarm aus.

Anschließend setzten die Angreifer einen Worker ein, der Antworten am CDN-Edge abfangen und umschreiben konnte. Der Worker entfernte außerdem schützende HTTP-Header, darunter Content-Security-Policy. Dieser Header würde andernfalls einschränken, welche Skripte und Ressourcen ein Browser ausführen darf.

Diese Architektur erklärt, warum herkömmliche Kontrollen zur Dateiintegrität die eingeschleusten Inhalte nicht erkannten. Die von Brevo gehosteten Dateien blieben unverändert, während Besucher über die Cloudflare-Infrastruktur manipulierte Antworten erhielten.

Der Schlüssel könnte bereits Ende August offengelegt worden sein. Brevo erklärte jedoch, vor dem Angriffszeitraum am 14. September keine Hinweise auf eine missbräuchliche Nutzung gefunden zu haben.

Nach der Entdeckung entfernte das Unternehmen den schädlichen Worker und die zugehörigen Routen, widerrief den gestohlenen Schlüssel und erklärte über ihn erstellte Zugangsdaten für ungültig. Außerdem entfernte Brevo das fest im Quellcode hinterlegte Secret, löschte von den Angreifern kontrollierte Hostnamen und bereinigte zwischengespeicherte Inhalte am Edge.

Gefälschte Cloudflare-Prüfungen drängten Windows-Nutzer zu ClickFix

Besuchern, die die manipulierten Inhalte erhielten, wurde eine gefälschte Cloudflare-Verifizierungsseite angezeigt. Anschließend präsentierte die Seite ClickFix-Anweisungen, die Windows-Nutzer dazu bringen sollten, selbst einen Befehl auszuführen.

ClickFix-Angriffe setzen auf Social Engineering und nicht auf einen direkten Browser-Exploit. Einem Opfer wird erklärt, dass es eine Überprüfung abschließen, einen Fehler beheben oder eine Sicherheitskontrolle bestehen müsse, indem es einen Befehl kopiert und ausführt. Wer diese Anweisungen befolgt, kann dadurch unbemerkt Malware installieren.

Die verfügbaren Informationen nennen weder den genauen Befehl, der während dieser Kampagne angezeigt wurde, noch die letztlich ausgelieferte Windows-Nutzlast. Daher ist weiterhin unklar, welche Malware-Familien an Nutzer ausgeliefert wurden, die die Schritte abgeschlossen haben.

Die Technik kam auch bei anderen Angriffskampagnen gegen Websites zum Einsatz. Bei einer separaten Operation wurden kürzlich gefälschte Verifizierungsaufforderungen auf Tausenden kompromittierten WordPress- und PrestaShop-Websites eingesetzt. Das zeigt, wie breit solche Täuschungsmanöver verbreitet werden können, sobald vertrauenswürdige Webressourcen manipuliert wurden.

WordPress-Administratoren waren einer dauerhaften Hintertür ausgesetzt

Der eingeschleuste Code führte auf WordPress-Websites, auf denen ein betroffenes Brevo-Widget lief, zusätzliche Prüfungen durch. Insbesondere versuchte er festzustellen, ob der aktuelle Besucher als Administrator authentifiziert war.

Wenn dies der Fall war, versuchte der Code, ein schädliches Plugin-Archiv von folgender Adresse herunterzuladen:

https://cdn10.sendibt1[.]com/p/wm.zip

Sansec konnte das Archiv während der Untersuchung nicht abrufen. Eine auf VirusTotal gefundene Kopie zeigte jedoch, dass sich das Paket als Plugin namens Web Media Optimizer ausgab.

Tatsächlich diente es dazu, Persistenz einzurichten, entfernte JavaScript-Dateien zu laden und den Angreifern dauerhaften Zugriff zu ermöglichen. Zur Verteilung des Plugins oder zugehöriger Skripte wurde unter anderem folgende Infrastruktur verwendet:

  • https://yelahaye[.]surf
  • https://boiseno[.]club

Nach der Installation verbarg sich das Plugin in der normalen WordPress-Plugin-Liste. Außerdem kopierte es sich in das Verzeichnis für Must-use-Plugins, aus dem WordPress Plugins automatisch lädt, ohne dass eine normale Aktivierung erforderlich ist.

Die Hintertür kontaktierte regelmäßig:

https://glegchner.com/ads.php

Zum Zeitpunkt der Analyse lieferte dieser Endpunkt eine Base64-kodierte Adresse zurück, die auf folgende URL verwies:

https://corralos[.]beer/a412dkoq.js

JavaScript von dieser Adresse wurde in Seiten für Besucher eingeschleust, um einen weiteren ClickFix-Köder anzuzeigen. Das Plugin speicherte außerdem eine Sicherung der zuletzt gültigen JavaScript-URL. Dadurch konnte es weiterhin schädlichen Code laden, wenn der Steuerungsserver vorübergehend nicht erreichbar war.

Noch schwerwiegender war, dass das Plugin einen fest codierten Authentifizierungsschlüssel enthielt. Angreifer, die über diesen Schlüssel verfügten, konnten eine gültige WordPress-Administratorsitzung erzeugen, ohne das Passwort des Administrators zu kennen. Ein alleiniger Passwortwechsel reicht daher möglicherweise nicht aus, solange das Plugin installiert bleibt.

Website-Betreiber sollten Plugins, Edge-Konfiguration und Zugangsdaten prüfen

WordPress-Administratoren, die am 14. September während einer Anmeldung eine betroffene Website besucht haben, sollten alle an diesem Tag installierten oder aktivierten Plugins überprüfen. Die Prüfung muss auch das Verzeichnis für Must-use-Plugins umfassen, da das schädliche Paket möglicherweise nicht in der normalen Dashboard-Liste angezeigt wird.

Verantwortliche sollten nach Web Media Optimizer, den genannten Domains und URLs, unerwarteten PHP-Dateien und unbekannten Administratorsitzungen suchen. Verdächtige Plugins sollten unverzüglich entfernt werden. Anschließend sollten Administratorpasswörter geändert und bestehende Sitzungen beendet werden.

Organisationen, die Brevo-Komponenten einsetzen, sollten außerdem:

  • Seiten und Templates auf betroffene Brevo-Forms-, Conversations- und SDK-Loader-Skripte prüfen.
  • Die Erstellung, Änderung und Weiterleitung von Cloudflare Workern überprüfen.
  • DNS-Änderungen und neu erstellte Hostnamen untersuchen.
  • Die Nutzung von API-Schlüsseln und über privilegierte Tokens erzeugte Zugangsdaten überprüfen.
  • Möglicherweise offengelegte Schlüssel widerrufen, statt sich ausschließlich auf reguläre Rotationsintervalle zu verlassen.
  • In Quellcode und Deployment-Artefakten eingebettete Secrets entfernen.
  • CDN- und Anwendungscaches bereinigen, nachdem bestätigt wurde, dass die schädlichen Routen entfernt wurden.
  • Netzwerk-, Proxy-, DNS- und Web-Logs nach der identifizierten Infrastruktur durchsuchen.
  • Nutzer untersuchen, die auf Cloudflare-ähnliche Verifizierungsaufforderungen gestoßen und anschließend Befehle ausgeführt haben.

Es wurde keine Zahl der Infektionen bekannt gegeben. Die Schätzung von Sansec von bis zu 100.000 exponierten Websites beschreibt die mögliche Reichweite der Verbreitung, nicht die Zahl erfolgreicher Plugin-Installationen oder kompromittierter Windows-Systeme.

Der Vorfall folgt auf eine separate Kampagne zur Übernahme von Brevo-Konten

Der Cloudflare-Angriff ereignete sich kurz nach einem weiteren Sicherheitsvorfall im Zusammenhang mit Brevo. Am 10. September gab das Unternehmen eine SSO-bezogene Kampagne bekannt, bei der Angreifer Kundenkonten übernahmen und diese zum Versand von Phishing-Nachrichten nutzten.

Der Anbieter von Kryptowährungs-Wallets Trezor berichtete am 11. September, dass die Kampagne 347.000 E-Mail-Adressen von Nutzern erreichte und mindestens 2.500 kompromittierte Konten zur Folge hatte.

Brevo hat nicht bestätigt, ob diese Aktivitäten zur Kontoübernahme mit dem gestohlenen Cloudflare-API-Schlüssel in Verbindung standen. Solange keine Belege die Betreiber, die Infrastruktur oder die Zugriffsmethoden miteinander verknüpfen, müssen die beiden Vorfälle als separate Untersuchungen behandelt werden.

Der jüngste Angriff legt dennoch eine weitreichende Vertrauensgrenze offen: Ein einzelner, überprivilegierter CDN-Zugang ermöglichte es den Angreifern, Inhalte auf von Brevo kontrollierten Domains und potenziell auf Tausenden Kunden-Websites zu manipulieren, während die ursprünglichen Dateien unverändert blieben.

Auch interessant

Quellen

Dieser Artikel ist eine eigenständige Aufbereitung auf Basis der folgenden Quellen.

Verwandte ThemenBrevo Supply-Chain-AngriffCloudflare API-SchlüsselClickFix MalwareBrevo Widget kompromittiertWordPress SicherheitCDN Edge Manipulation
Zurück zur Startseite