vor 1 Std.
Drei Jahre unentdeckter Fehler: 1,3 Mio. US-Dollar gestohlen und Radix-Blockchain zehn Tage angehalten
Ein eigentlich routinemäßiges Code-Refactoring bei Radix hat eine Schwachstelle in "Vaults" geschaffen, die einen Diebstahl von rund 1,3 Mio. US-Dollar ermöglichte und die Validatoren später zum Anhalten der Blockchain zwang. Die Radix Foundation teilte am 17. September mit, dass ein Entwicklungsteam von RDX Works den Defekt im Zuge einer Aufräumaktion am Radix Engine im Juni 2023 eingebaut habe. Die Radix Engine ist die Software-Schicht, die Transaktionen ausführt und die Eigentumsrechte an Assets im Netzwerk durchsetzt.
Die Schwachstelle blieb über drei Jahre unentdeckt, bis ein Angreifer sie am 31. August ausnutzte. Eine Community-Rekonstruktion des Ledgers zeigt, dass der Angreifer in 26 Transaktionen etwa 458.915 USDC, 72.420 USDT, 61,08 ETH, 6,35 Wrapped Bitcoin, 536,16 SOL und 32,91 BNB abzog. Auf Basis der Marktpreise vom 31. August entsprach das einem Gegenwert von rund 1,26 Mio. US-Dollar. Zusätzlich entnahm der Angreifer weitere 13.000 XRD aus einem Vault zur Bezahlung von Transaktionsgebühren. Allein die beiden Stablecoins machten dabei etwa 531.335 US-Dollar aus.
Radix zufolge wurden die entwendeten Vermögenswerte über Hyperlane zu Ethereum, BNB Chain und Solana transferiert und anschließend in ETH verkauft. Hyperlane habe dabei wie vorgesehen funktioniert: Die Assets seien bereits über die Radix Engine erlangt worden, bevor der Bridge-Transfer erfolgte. Kompromittierte Private Keys habe es nicht gegeben.
Radix-Ermittler betonten, der unmittelbare Schaden bilde das Risiko nur unvollständig ab. Der Fehler hätte demnach gegen jeden Vault im Netzwerk eingesetzt werden können, wodurch auch Token und andere Assets außerhalb der konkret abgeflossenen, gebridgten Bestände potenziell gefährdet gewesen seien. In der Folge nahmen Validatoren gezielt ausreichend Stake offline, um keine Konsensfindung mehr zu ermöglichen. So sollten weitere Transaktionen gestoppt werden, während Entwickler an einem Fix arbeiteten.
Brisant: Die Schwachstelle hatte bereits ein unabhängiges Security-Review überstanden. Zellic auditierte 2024 das Radix-Protokoll, einschließlich des Engine-Kernels, in dem der Defekt steckte. Die Prüfung erkannte die Autorisierungslücke nicht, obwohl der anfällige Code im Refactoring des Vorjahres entstanden war.
Technisch änderte der Bug, wie die Engine Vault-Referenzen behandelte. Eine Transaktion konnte den Vault eines anderen Nutzers über dessen interne Adresse referenzieren und diese Referenz in speziell erstellten Smart-Contract-Code einschleusen. Die Engine ließ daraufhin reguläre Auszahlungsfunktionen zu, ohne die Eigentumsgrenze korrekt durchzusetzen, die den Vorgang hätte blockieren müssen. Damit erhielt der Angreifer Zugriff auf Assets aus Nutzerkonten, Anwendungen und Liquiditätspools, ohne die Signaturen der Eigentümer.
Laut Foundation führte der Angreifer die 26 Exploit-Transaktionen am 31. August zwischen 16:02 und 16:57 UTC aus. Als klar war, dass die Schwachstelle in der Ausführungsschicht lag und nicht in einer einzelnen Anwendung, koordinierten die Validatoren den Stopp der Finalisierung. Die Unterbrechung dauerte mehr als zehn Tage.
Ein Protokoll-Fix ergänzte Prüfungen, die verhindern, dass eine eingeschränkte Vault-Referenz für eine gewöhnliche Auszahlung genutzt werden kann. Laut Community-Rekonstruktion wurden Nutzertransaktionen am 11. September wieder aufgenommen.
Der Vorfall zog zudem Folgeschäden in Liquiditätspools nach sich: Weil der Angreifer gebridgte Assets einseitig aus Trading-Paaren entfernte, gerieten Preise aus dem Gleichgewicht. Das ermöglichte einem weiteren Account, Millionen von XRD aus betroffenen Pools zu extrahieren. Der Fall zeigt, wie ein Fehler in der Ausführungsschicht auch dann noch ökonomischen Schaden verursachen kann, wenn die ursprünglich entwendeten Assets das Netzwerk bereits verlassen haben.
Radix kündigte an, zusätzliche Regressionstests einzuführen, den Security-Review-Prozess zu verschärfen und das Notfallverfahren zu formalisieren, mit dem Validatoren die Liveness des Netzwerks gezielt unterbrechen. Künftige Sicherheitsarbeit müsse zudem zunehmend leistungsfähige KI-gestützte Tools zur Codeanalyse berücksichtigen, die nach Einschätzung von Radix dem Angreifer bei der Identifikation des jahrealten Defekts geholfen haben könnten.
Für Entwickler und Validatoren sei die nächste Herausforderung, zu verhindern, dass scheinbar gewöhnliche Wartungsarbeiten stillschweigend Sicherheitsannahmen verändern, die auch externen Audits entgehen können. Radix müsse die Prüfprozesse rund um Änderungen an der Autorisierungslogik stärken und zugleich das Vertrauen von Nutzern und Liquiditätsanbietern zurückgewinnen, deren Assets letztlich davon abhängen, dass die Engine diese Grenzen zuverlässig durchsetzt.