„Einer unserer Drittanbieter wurde kompromittiert, und wir haben dies an die zuständigen Strafverfolgungsbehörden weitergegeben", teilte Polymarket mit. „Alle Betroffenen werden entschädigt. Aus Vorsicht haben wir den Handel vorübergehend eingestellt und arbeiten daran, die Plattform wieder online zu bringen."
Zunächst versetzte Polymarket die Börse um 14:05 Uhr ET in den Cancel-only-Modus und pausierte die Relayer-Aktionen während der Untersuchung. Um 14:37 Uhr meldete das Unternehmen, das Problem sei behoben, der Handel bleibe vorsichtshalber ausgesetzt. Rund eine Stunde nach der ersten Unterbrechung lief der Handel wieder, als gelöst markiert wurde der Vorfall um 15:05 Uhr ET. „Der Handel ist jetzt vollständig wieder online", schrieb das Unternehmen auf X. „Wir werden das in Ordnung bringen und entschädigen alle betroffenen Händler vollständig."
Wie viele Nutzer betroffen sind, wie viel Kryptowährung entwendet wurde und wie die Erstattung ablaufen soll, hat Polymarket nicht mitgeteilt.
Sicherheitsforscher von Hudson Rock identifizierten eine mutmaßlich von den Angreifern kontrollierte Wallet (0x3F99139F1C5854bb628c2e576Aaf638e99dFfc18), die im schädlichen JavaScript eingebettet war. Eine Auswertung der Blockchain-Aktivität dieser Adresse zeigt, dass sie rund 28,6 Millionen POL im Gegenwert von etwa 2,57 Millionen US-Dollar an drei weitere Wallets übertrug. Zwischen 13:50 und 13:56 Uhr ET – kurz vor der Handelsaussetzung – führte die Wallet zahlreiche Transaktionen mit dem Token-Contract des Prognosemarkts von Polymarket aus. Zum Zeitpunkt der Untersuchung durch Hudson Rock hielt die Wallet laut den Forschern etwa 2,19 Millionen US-Dollar in Kryptowährung.
Schädliches JavaScript über Monitoring-Dienst verteilt
Hudson Rock machte das schädliche JavaScript aus, das über cdn.debugbear[.]com/C7xcKKrjUnXK.js verteilt wurde und darauf ausgelegt war, Kryptowährung und Prognosemarkt-Bestände von Polymarket-Nutzern zu stehlen. Gehostet wurde das Skript auf Infrastruktur von DebugBear, einem Dienst zur Überwachung der Website-Performance, mit dem Organisationen Ladezeiten und Nutzererlebnis messen. Der Real-User-Monitoring-Dienst (RUM) von DebugBear bindet dafür JavaScript in Websites ein, um Performance-Daten aus den Browsern der Besucher zu sammeln.
DebugBear hat inzwischen bestätigt, einen laufenden Sicherheitsvorfall zu untersuchen, und forderte Kunden auf, das Monitoring-JavaScript von ihren Websites zu entfernen. „Wir sind von einem andauernden Sicherheitsvorfall betroffen", schrieb DebugBear auf X. „Wenn Sie unser RUM-Produkt einsetzen, entfernen Sie bitte den Einbettungscode von Ihrer Website." Die Website von DebugBear war zuletzt nicht erreichbar und zeigte einen Cloudflare-Fehler; ob der Ausfall mit Eindämmungsmaßnahmen oder einer anderen Folge des Vorfalls zusammenhängt, ist unklar.
Die Forscher von Hudson Rock fanden zudem Build-Metadaten aus der Polymarket-Produktion mit der Commit-Nachricht „chore(polymarket): remove debugbear rum script (#15337)" – ein Hinweis darauf, dass die Plattform die DebugBear-Integration entfernt hat. Der Build trägt den Zeitstempel 29. Oktober, 13:59 Uhr ET, kurz bevor Polymarket den Vorfall öffentlich machte.
Eine Analyse einer Kopie der schädlichen JavaScript-Datei zeigt, dass sie authentifizierte Polymarket-Handelssitzungen übernehmen, Prognosemarkt-Positionen der Nutzer liquidieren und Kryptowährung sowie andere Vermögenswerte an eine von den Angreifern kontrollierte Wallet übertragen sollte. Die Schadsoftware prüft, ob ein Besucher bei Polymarket angemeldet ist, und versucht, dessen bestehende Handelssitzung und die Handelsfunktionen der Plattform für unautorisierte Transaktionen zu nutzen. Anschließend ermittelt sie Krypto-Guthaben und Prognosemarkt-Positionen, um den Wert der Bestände zu bestimmen.
Je nach Anmeldeart des Nutzers geht der Schadcode unterschiedlich vor: Bei manchen versucht er, Prognosemarkt-Positionen automatisch zu verkaufen, bei anderen die Prognosemarkt-Token direkt an die Angreifer-Wallet zu übertragen. Außerdem versucht er, Krypto-Bestände der Nutzer über die vorhandene Transaktionsfunktion von Polymarket in übertragbare Werte umzuwandeln.
Das Skript kommunizierte mit data.debugbear.com, um Anweisungen zu empfangen und Daten über anvisierte Konten, Wallet-Adressen, Guthaben und Transaktionsergebnisse zu übermitteln. Dass die Infrastruktur von DebugBear sowohl zur Verteilung des Schadcodes als auch als Command-and-Control- und Exfiltrationsserver diente, wirft Fragen auf, wie weitreichend der Zugriff der Angreifer auf die Systeme des Unternehmens war.
