Zurück zu allen Beiträgen
Veröffentlicht am · von Renaud Deraison

Ein Roblox-Cheat, eine OAuth-Freigabe und ein 2-Mio.-$-Leak bei Vercel

Der diese Woche bekannt gewordene Vercel-Einbruch begann damit, dass ein Context.ai-Mitarbeiter auf einem privaten PC Roblox-Exploits herunterlud, und endete damit, dass ein Angreifer die Kundendatenbank mit Umgebungsvariablen von Vercel auslas. Bromure Enterprise, diese Woche veröffentlicht, ist genau für diese Kette gebaut.

Ein Mitarbeiter sucht auf seinem privaten Laptop nach Roblox-Cheats. Zwei Monate später verkauft ein Angreifer die Kundendatenbank von Vercel für 2 Millionen Dollar auf BreachForums. Zwischen diesen beiden Ereignissen liegt eine Kette alltäglicher Entscheidungen — ein privates Gerät, ein Klick auf „Alle zulassen“ bei einer OAuth-Freigabe, ein Drittanbieter-KI-Tool mit einem support@-Account — auf die jedes Enterprise-IT-Team diese Woche starren sollte. Bromure Enterprise, das wir gestern veröffentlicht haben, wurde für die Mitte dieser Kette gebaut.

Am 20. April hat Vercel bekanntgegeben, dass ein „hochgradig ausgeklügelter“ Angreifer über ein kompromittiertes KI-Tool eines Drittanbieters namens Context.ai in seine internen Systeme eingedrungen war und auf nicht sensible Umgebungsvariablen einer Teilmenge von Kundenprojekten zugegriffen hatte. CEO Guillermo Rauch bezeichnete die Angreifer als „durch KI erheblich beschleunigt“ und forderte Kunden auf, alle als nicht sensibel markierten Zugangsdaten zu rotieren. Eine Gruppe, die sich ShinyHunters nennt, versucht nun, die gestohlenen Daten für $2M auf BreachForums zu verkaufen.

Die Lösegeldsumme ist die Schlagzeile. Die Angriffskette ist die Lektion. Hudson Rock hat die Infektion auf Februar 2026 zurückverfolgt: Ein Context.ai-Mitarbeiter suchte nach Roblox-„Auto-Farm“-Skripten und Spiel-Exploit-Executorn, lud einen herunter und fing sich dabei Lumma Stealer ein — einen handelsüblichen Infostealer, der Browser-Cookies, gespeicherte Zugangsdaten und OAuth-Tokens absaugt. CyberScoop und SpecterOps haben den Rest später rekonstruiert. Was Lumma extrahierte, war nicht nur ein Context.ai-Passwort; es war der gesamte Satz im Browser gecachter Unternehmens-Zugangsdaten — Google-Workspace-Sitzungen, Supabase-Keys, Datadog-Logins, Authkit-Tokens.

Von dort aus pivotierte der Angreifer in die AWS-Umgebung von Context.ai, las die OAuth-Tokens aus, die Context.ai im Namen seiner Kunden hielt, und fand einen Vercel-Mitarbeiter, der sich einst mit seinem Unternehmens-Google-Konto für Context.ais „AI Office Suite“ registriert hatte — und das Kästchen „Alle zulassen“ angeklickt hatte. Diese eine Einwilligung, Monate zuvor erteilt, war das einzige Primitiv, das der Angreifer brauchte. Er erzeugte eine Sitzung als dieser Mitarbeiter, spazierte in den Google Workspace von Vercel und von dort in Vercels interne Produkt-API, wo er jede Umgebungsvariable aufzählte und entschlüsselte, die ein Kunde nicht ausdrücklich als sensibel markiert hatte.

SCHRITT 1 — FEB. 2026Privater LaptopRoblox-Cheat-DownloadLumma Stealer landetFirmen-Creds exfiltriertSCHRITT 2 — MÄRZ 2026Context.ai AWSsupport@-EskalationKunden-OAuth lesenTokens extrahiertSCHRITT 3Vercel-Workspace"Alle zulassen"-Freigabevon Monaten zuvorSitzung erzeugtSCHRITT 4Vercel-Produkt-APIProjekte aufzählenEnv-Vars entschlüsselnKundendaten gelesenSCHRITT 5 — 20. APR.BreachForumsShinyHuntersDatenbank zum Verkauf$2,000,000WO BROMURE ENTERPRISE DIE KETTE DURCHBROCHEN HÄTTEBEI SCHRITT 1Verwaltete VM aufunverwaltetem HostArbeitsbrowsing lebt ineiner VM, die der Host-Stealer nicht lesen kann.BEI SCHRITT 3Liste zugelassenerSaaS-KachelnContext.ai stand nie auf derFreigabeliste. Keine Kachel,kein Ein-Klick-Sign-up.BEI SCHRITT 3SSO-geschütztesArbeitsprofilEinwilligungsfläche fürAdmins sichtbar. Nichtzugelassene OAuth-App, keine Freigabe.BEI SCHRITT 4 (UND DANACH)Audit-Log pro AnfrageJeder HTTP-Aufruf jederArbeitssitzung, Nutzer + URL +Verb. "Was hat Context.aitatsächlich gelesen?" — beantwortbar.
Die Vercel-/Context.ai-Kette, von Anfang bis Ende. Eine Privatlaptop-Infektion bei Context.ai greift den Browser-Zustand des Unternehmens ab. Der Angreifer pivotiert in Context.ais AWS, liest die OAuth-Tokens der Kunden aus und reitet auf einer vorab erteilten „Alle zulassen“-Einwilligung direkt in Vercels Google Workspace. Von dort: Vercels Produkt-API und die Umgebungsvariablen der Kunden.

Vier Dinge an dieser Kette verdienen Erwähnung, weil sich jedes auf eine konkrete Kontrolle abbildet, die wir diese Woche in Bromure Enterprise ausgeliefert haben. Wir werden nicht behaupten, das Release hätte den Einbruch vollständig verhindert — das hätte es nicht. Was es getan hätte, ist, die Kette an vier separaten Punkten zu durchbrechen, von denen jeder einzelne genügt.

Der private Laptop war tragend

Das am stärksten unterbelichtete Detail in den öffentlichen Berichten ist, dass die infizierte Maschine ein privates Gerät war. Der Context.ai-Mitarbeiter suchte nach Roblox-Exploits — keine typische Unternehmensaufgabe — und die Infektion landete auf einer Maschine, auf der wahrscheinlich sowohl beruflich als auch privat gesurft wurde. Lumma Stealer ist es egal, zu welchem Profil ein Cookie gehört; er liest jede Chrome- und Edge-Zugangsdatendatei, die er finden kann, und verschickt das gesamte Paket.

Das ist das zentrale Muster der BYOD-Ära. Der Host ist unverwaltet. Die Arbeits-Cookies liegen im selben Cookie-Glas wie der Roblox-Cheat, den der Nutzer gerade heruntergeladen hat. Ein EDR-Agent mag installiert sein oder nicht; auf einem privaten Gerät ist das sehr unwahrscheinlich. Und selbst wenn, wird Lumma regelmäßig dabei beobachtet, handelsübliche AV-Lösungen zu umgehen.

Die Antwort von Bromure Enterprise ist eine verwaltete VM auf einem unverwalteten Host. Die IT stellt ein Bromure-Arbeitsprofil aus. Der Mitarbeiter installiert Bromure auf seinem privaten Laptop, meldet sich mit dem Unternehmens-IdP an (Google Workspace, Okta, Entra, Authentik), und das Arbeitsprofil bootet als eigene virtuelle Linux-Maschine. Diese VM hat ihren eigenen Kernel, ihr eigenes Dateisystem, ihr eigenes Chromium-Profilverzeichnis. Unternehmens-Cookies, im Unternehmen gespeicherte Passwörter und OAuth-Refresh-Tokens des Unternehmens leben innerhalb dieser VM. Ein Stealer, der auf dem Host-macOS oder Windows läuft — eingefangen über einen Roblox-Download oder irgendetwas anderes — kann sie weder aufzählen, lesen noch exfiltrieren. Es gibt kein gemeinsames Chrome-Profil auf der Festplatte, das er stehlen könnte. Das Cookie-Glas liegt innerhalb eines VM-Images, das das Host-OS als opake Plattendatei behandelt.

Das ist keine theoretische Trennung. Es ist der gesamte Sinn der Architektur. Der Host kann sich den ganzen Tag lang kompromittieren lassen; der Arbeitsbrowser steht in einem anderen Computer.

Der Klick auf „Alle zulassen“ war die eigentliche Trophäe

Schauen wir uns den Pfad des Angreifers genau an. Der Stealer griff Zugangsdaten für Google Workspace, Supabase, Datadog und Authkit ab. Die waren nützlich, um innerhalb von Context.ai zu pivotieren. Aber das, was bis zu Vercel reichte, war kein gestohlenes Passwort — es war ein OAuth-Token. Konkret das Token, das geprägt wurde, als sich ein Vercel-Mitarbeiter für Context.ais AI Office Suite registrierte, sich durch den Google-Einwilligungsdialog klickte und das Scope-Paket „Alle zulassen“ freigab. Diese Einwilligung lag Monate zurück. Sie wurde nie neu bewertet. Sie lag einfach da, gültig, und wartete.

Das ist die OAuth-Sichtbarkeitslücke, auf die SpecterOps hingewiesen hat: Vertrauenskanten, die einzelne Mitarbeiter durch Klicks auf Einwilligungsdialoge erzeugen, operieren vollständig außerhalb des Provisioning-Workflows der IT. Der Pfad war offen, bevor irgendjemand wusste, dass er danach suchen müsste.

Bromure Enterprise verengt diese Fläche gleichzeitig in zwei Richtungen.

Die Liste zugelassener SaaS-Kacheln ist der Engpass auf dem Weg hinein. Admins veröffentlichen den Satz freigegebener Arbeits-Apps auf der Work-Startseite jedes erfassten Nutzers. Diese Kacheln sind das, worauf Mitarbeiter klicken, um ein neues Tool einzuführen. Context.ai stand bei Vercel nicht auf dieser Liste — es konnte nicht darauf stehen; es war das Experiment eines einzelnen Mitarbeiters. Ohne Kachel gibt es keinen Ein-Klick-Sign-up-Flow innerhalb des verwalteten Arbeitsprofils. Der Mitarbeiter kann natürlich trotzdem manuell zu Context.ai navigieren; an dieser Stelle greift die zweite Kontrolle.

Das Arbeitsprofil ist SSO-geschützt und seine Einwilligungsfläche ist sichtbar. OAuth-Einwilligungen, die aus einem verwalteten Bromure-Arbeitsprofil heraus initiiert werden, laufen über den Unternehmens-IdP unter Admin-Richtlinien. Ein Admin, der überhaupt steuern möchte, welche Drittanbieter-Apps Google-Workspace-Scopes erhalten dürfen — was jeder Google-Workspace-Admin tun sollte und fast keiner tatsächlich tut — hat seinen Durchsetzungspunkt in der Bromure-Policy-Engine, statt verstreut über das, worauf jeder Mitarbeiter vor Wochen zufällig geklickt hat. Das „Alle zulassen“-Kästchen hört auf, eine Überraschung zu sein, die achtzehn Monate später während einer Incident Response auftaucht.

Nichts davon widerruft rückwirkend eine OAuth-Freigabe, die erteilt wurde, bevor der Mitarbeiter zu Bromure gewechselt ist. Aber ab sofort ist die Kategorie „ein Mitarbeiter hat breite Google-Scopes an eine zufällige SaaS-App vergeben, von der ich noch nie gehört habe“ sichtbar und steuerbar.

Danach ist das Audit-Log der einzige Weg, den Schaden einzugrenzen

Das öffentliche Bulletin von Vercel ist ehrlich dazu, was ihre Untersuchung ergeben hat: Der Angreifer hat Umgebungsvariablen aus einer Teilmenge von Kundenprojekten aufgezählt und entschlüsselt. Der Umfang wird noch präzisiert. Der Grund, warum er noch präzisiert wird, ist, dass die Rekonstruktion der Frage „Was hat der Mitarbeiter-Account zwischen Ende März und Mitte April tatsächlich gelesen?“ aus den Google-Workspace-Audit-Logs plus Vercels internen Produkt-Logs ein forensisches Rekonstruktionsprojekt ist, keine Abfrage.

Das ist die Lücke, die das Audit-Log pro Anfrage von Bromure Enterprise schließen soll. Jede HTTP-Anfrage, die aus jeder Arbeitssitzung auf jedem erfassten Gerät gestellt wird, wird zentral geloggt: Nutzer, URL, Verb, Zeitstempel. „Wer hat gestern zwischen 8:00 und 8:15 Uhr Zugangsdaten an evil.com gesendet?“ ist das Beispiel, das wir beim Launch genutzt haben. Ein besseres Beispiel diese Woche: „Für jeden Umgebungsvariablen-Endpunkt unserer Vercel-Produkt-API: Wer hat ihn in den letzten neunzig Tagen von wo aus und wann getroffen?“ Eine Abfrage, kein Projekt.

Das ist der EDR-trifft-Web-Audit-Log-Teil. EDR beantwortet dieselbe Frage für native Prozesse: Was hat dieser Prozess angefasst? Bromure beantwortet sie für das Browsing: Was hat der Browser dieses Nutzers angefasst? Bei einem Vorfall wie dem von Vercel, bei dem der Fußabdruck des Angreifers vollständig innerhalb einer kompromittierten Browsersitzung liegt, ist die EDR-Antwort leer und die Bromure-Antwort ist die Vorfall-Zeitleiste.

Datenabfluss-Kontrollen sind hier schmal — und das ist ehrlich

Wir wollen sorgfältig sein, wo Bromure Enterprise hilft und wo nicht. Die Kontrollen für Copy-and-Paste, Datei-Downloads, Screenshots und lokales Netzwerk sind real, und sie sind echte Erfolge gegen Datenabfluss im Allgemeinen — ein kompromittierter Tab in einem verwalteten Profil kann Kundendaten aus Umgebungsvariablen nicht in ein scp auf dem Host ziehen, sie nicht per Screenshot abgreifen oder sie nicht an einen LAN-Peer hochladen. Für die Vercel-Kette im Speziellen fand der Exfiltrationsschritt allerdings vollständig über die Leitung zwischen Vercels eigenem Backend und einem vom Angreifer kontrollierten Endpunkt statt. Der Angreifer führte authentifizierte API-Aufrufe durch, er zog keine Dateien aus einem Browserfenster. Die Paste/Download/LAN-Kontrollen hätten das nicht erfasst.

Was geholfen hätte und im oben genannten Audit-Log pro Anfrage aufgeführt ist, ist die Aufzeichnung der API-Aufrufe selbst. Datenabfluss-Kontrollen sind die zweite Linie; die erste Linie ist, dafür zu sorgen, dass der Angriff überhaupt nicht erst eine Sitzung in einem verwalteten Browser erzeugen kann.

Was Bromure Enterprise nicht tut

Drei ehrliche Grenzen, weil die Geschichte sie verdient.

Es stoppt keine Malware auf einem unverwalteten privaten Host. Ein Roblox-Cheat, der außerhalb der Bromure-VM heruntergeladen wird, ist immer noch ein Roblox-Cheat, der Infostealer-Malware auf dem privaten OS des Nutzers installiert. Bromure räumt das nicht auf. Was es tut: dafür zu sorgen, dass der Ertrag der Malware für den Angreifer nur die privaten Cookies des Nutzers sind — nicht die Unternehmens-Cookies.

Es entzieht OAuth-Scopes nicht rückwirkend. Einwilligungen, die erteilt wurden, bevor das Unternehmen Bromure Enterprise ausgerollt hat, stehen in der Grant-Liste von Google Workspace, nicht bei uns. Die richtige operative Maßnahme nach dem Einsatz von Bromure ist weiterhin ein Audit bestehender Drittanbieter-App-Freigaben — wir helfen Ihnen, die nächste zu verhindern, wir schreiben nicht die letzte um.

Es ersetzt nicht die Disziplin des Scopings. Der Vercel- Mitarbeiter klickte auf „Alle zulassen“. Wenn ein künftiger Mitarbeiter „Alle zulassen“ auf einer zugelassenen Kachel klickt, ist die Freigabe immer noch breit. Bromure macht die Fläche sichtbar und den Einführungspfad enger; es ersetzt nicht einen Admin, der entscheidet, welche Google-Scopes für eine bestimmte Kategorie von Apps zulässig sind und welche nicht.

Das Browser-first-Argument lautet nicht „es können keine Angriffe mehr passieren“. Es lautet, dass der wirkungsvollste Kontrollpunkt für die gesamte Kategorie von Angriffen, die über die Browsersitzung eines Nutzers laufen, der Browser selbst ist — und der Browser ist zufällig das einzige Stück Unternehmenssoftware, das auf unverwalteten Geräten nie eine ordentliche Management-Story hatte.

Unverwalteter privater Hostkein Firmen-EDR, kein MDMHOST-MALWARELumma Stealerliest Host-Chrome/EdgePRIVATER BROWSERChrome / EdgeRoblox, privates E-MailBROMURE-ARBEITS-VM · VOM HYPERVISOR ISOLIERTSSO-REGISTRIERTES ARBEITSPROFILFirmen-Google, Vercel-Dashboard, zugelassene KachelnEIGENES COOKIE-GLASFirmensitzungenim VM-DatenträgerAUDIT-TAPjede Anfrage geloggtins Flotten-Logvom HypervisorblockiertSaaS & der AngreiferZUGELASSENGoogle Workspacesichtbare EinwilligungenZUGELASSENVercel-Dashboardpro Anfrage auditiertNICHT ZUGELASSENER DRITTANBIETERContext.ai / zufällige KI-SaaSkeine Kachel, kein "Alle zulassen"-Pfad aus ArbeitsprofilANGREIFERhält nur Host-Cookieskeine Firmen-Workspace-Sitzungkein Vercel-Pivot verfügbar
Wie die Vercel-Kette mit Bromure Enterprise in der Mitte aussieht. Der Host-Laptop bleibt nicht vertrauenswürdig. Die Arbeits-VM sitzt darauf, vom Hypervisor isoliert. Der Browser-Zustand des Unternehmens verlässt die VM niemals. Die OAuth-Einwilligung für nicht zugelassene Drittanbieter-Apps startet entweder gar nicht erst (keine Kachel, kein SSO-Pfad) oder sie ist für Admins sichtbar. Jede Anfrage, die die Sitzung stellt, wird zentral geloggt, sodass das Eingrenzen eines Vorfalls zu einer Abfrage wird.

Die Form der Lösung

Supply-Chain-Einbrüche über SaaS-OAuth-Freigaben sind das moderne Äquivalent zu VPN-Credential-Stuffing-Angriffen vor zehn Jahren. Beide sind Folgen einer Vertrauenskante, die billig zu erschaffen, schwer zu inventarisieren und unmöglich zeitnah zu widerrufen war, wenn die Gegenseite kompromittiert wurde. Vercels Bulletin ist sorgfältig und ehrlich; die Kette, die es beschreibt, ist nicht Vercels Schuld. Sie ist das, was passiert, wenn derselbe Browser auf demselben privaten Laptop die Unternehmenssitzung des Mitarbeiters, seine Roblox-Download-Historie und seine gesammelten „Alle zulassen“-Einwilligungen für jedes KI-Tool enthält, mit dem er letztes Quartal experimentiert hat.

Die strukturelle Antwort ist, der Arbeitssitzung ihren eigenen Computer zu geben. Nicht einen zweiten Laptop — eine zweite Maschine, auf demselben Laptop materialisiert, mit ihrem eigenen Kernel, ihrem eigenen Dateisystem, ihrem eigenen Cookie-Glas, ihrer eigenen Policy-Engine, ihrem eigenen Audit-Tap in zentrales Logging. Das ist Bromure Enterprise. Wer IT in einem Unternehmen betreibt, dessen Mitarbeiter routinemäßig OAuth-Scopes an Drittanbieter-SaaS-Apps vergeben — also in jedem Unternehmen — für den ist Vercels Bulletin diese Woche der Grund, es auf die Shortlist zu setzen.


Primärquellen