Arbitrum, eine der führenden Layer-2-Skalierungslösungen für Ethereum, steht im Fokus einer kritischen Sicherheitslücke, die erhebliche Auswirkungen auf den Netzwerkbetrieb haben kann. Am 3. September 2024 wurde von den Sicherheitsforschern Bernard Wagner und Jason Matthyser eine gravierende Schwachstelle im Zusammenhang mit dem Stylus-Programmcode entdeckt und an Offchain Labs, das Unternehmen hinter Arbitrum, gemeldet. Diese Schwachstelle ermöglicht es einem Angreifer, den Sequencer, das Herzstück der Transaktionsbearbeitung auf Arbitrum, durch eine sogenannte Denial-of-Service (DoS)-Attacke ohne Gas- oder Gebührenkosten wiederholt zum Absturz zu bringen. Diese Tatsache poseiert ein ernsthaftes Risiko für Node-Betreiber und Validatoren und könnte im schlimmsten Fall sogar das gesamte Netzwerk außer Betrieb setzen.
Die Schwachstelle beruht auf einem logischen Fehler bei der Validierung von Modulimporten innerhalb von Stylus, einer Programmiersprache, die zur Erstellung und Ausführung von Smart Contracts auf Arbitrum genutzt wird. Konkret erlaubt die fehlerhafte Implementierung, dass ein fehlerhaftes Stylus-Programm mit ungültigen Importen erfolgreich bereitgestellt werden kann. Dies geschieht durch die mangelhafte Überprüfung von Importfunktionen, deren Namen fälschlicherweise modifiziert und dann gegen eine Liste unterstützter Funktionen validiert werden. Der problematische Mechanismus involviert eine Schleife, die sämtliche Importe eines Stylus-Binärprogramms durchläuft und dabei ein bestimmtes Präfix namens FORWARDING_PREFIX (im Code „arbitrator_forward__“) aus den Funktionsnamen entfernt. Dabei wird nicht überprüft, ob ein Import mit diesem Präfix tatsächlich existiert.
Ein Angreifer kann somit eine ungültige Funktion mit Namen wie „arbitrator_forward__evm_gas_limit“ einfügen, deren ursprünglicher Funktionsname „evm_gas_limit“ korrekt ist und normalerweise validiert wird. Da das System nur das Präfix entfernt und dann die Funktion prüft, fällt eine ungültige Funktion durch diese Kontrolle durch – vorausgesetzt, die Signatur stimmt mit der echten Funktion überein. Die Folge ist fatal. Wenn das Stylus-Programm ausgeführt wird, versucht das System den Import der gefälschten Funktion herzustellen und stoßt auf einen „unknown import“-Fehler, der im Sequencer einen sogenannten Panic auslöst. Dieser unerwartete Fehler sorgt dafür, dass die Sequenzierung der Blöcke abrupt abbricht.
Der Ort des Fehlers wurde im Code von Geth lokalisiert, speziell innerhalb der Funktion core.(*StateTransition).TransitionDb. Die Ausführung eines solchen Exploits kostet keinen Gas, wodurch böswillige Akteure den Angriff beliebig oft wiederholen könnten, um den Sequencer kontinuierlich lahmzulegen. Die Bedeutung dieses Angriffs lässt sich nicht hoch genug einschätzen.
Der Sequencer ist für die reibungslose Verarbeitung und Reihenfolge der Transaktionen im Arbitrum-Netzwerk essenziell. Ohne ihn können keine neuen Blöcke bestätigt oder generiert werden – eine vollständige Netzwerkunterbrechung ist die unmittelbare Konsequenz. Besonders gefährlich ist zudem das Timing: Angreifer könnten die Schwachstelle „stundenweise“ ausnutzen, um den Absturz zum Beispiel während eines Marktcrashs zu provozieren, wenn der Bedarf an schneller Transaktionsabwicklung am höchsten ist. Besonders bedenklich ist, dass das ursprüngliche Problem mit der Validierung der Stylus-Importe nicht durch die reine Korrektur der Prüflogik behoben werden kann. Denn bereits deployte fehlerhafte Stylus-Programme können weiterhin zur Auslösung des Sequencer-Panics genutzt werden – auch nachdem ein Patch eingespielt wurde.
Dies stellt das Arbitrum-Team vor die Herausforderung, nicht nur die Validierung zu verschärfen, sondern auch den Umgang mit Panics deutlich robuster zu gestalten, indem sie abgefangen und als Transaktions-Fehler behandelt werden müssen, die zu einem Revert führen, anstatt das gesamte System zum Absturz zu bringen. Die Schwere des Sicherheitslochs wurde von iosiro, der meldenden Sicherheitsfirma, mit dem Risiko-Level „Kritisch“ eingestuft. Dies entspricht der höchsten Einstufung nach dem Immunefi Vulnerability Severity Classification System speziell für Blockchain- und Distributed-Ledger-Technologien, wobei der Ausfall des Netzwerks und die Unfähigkeit, neue Transaktionen zu bestätigen, bewertet wird. Die Arbitrum Foundation vergab finales durch ihren eigenen Bewertungsprozess den Level „Hoch“ und honorierte die Meldung mit einem Bug-Bounty von 80.000 US-Dollar, eine Anerkennung für den schnellen und verantwortungsvollen Umgang mit der Bedrohung durch die Offchain Labs.
Ein reproduzierbarer Proof of Concept (PoC) ist verfügbar und wurde unter anderem in der Testnetz-Umgebung durchgeführt. Dabei wurde ein exploitatives Stylus-Programm erstellt, das den Fehler ausnutzt und auf der Nitro-Version 3.1.2 des Arbitrum-Knotens getestet werden konnte. Dieses Beispiel demonstriert nicht nur die technische Machbarkeit des Angriffs, sondern auch, wie einfach es für einen Angreifer ist, die Denial-of-Service-Bedingung zu verursachen – ohne aufwändige Transaktionskosten oder komplexe Angriffsmethoden.
Die Entdeckung und Meldung hat die Entwickler von Offchain Labs zu zügigen Gegenmaßnahmen bewogen. Kurz nach der Bekanntgabe wurde ein sogenannter „Stealth Mitigation“-Patch auf das Mainnet aufgespielt, der die Bereitstellung neuer Stylus-Programme mit invaliden Importen verhindert und gleichzeitig eine Überprüfung sämtlicher bereits existierender Programme zur Schadensbegrenzung durchführte. Diese temporäre Maßnahme wurde wenige Wochen später von einem umfassenden Fix in Nitro Version 3.2.0 abgelöst, der am 24.
September 2024 veröffentlicht wurde und die Validierungslogik grundlegend verbesserte. Die Ereignisse rund um den „Panic at the Sequencer“ Vorfall zeigen exemplarisch die Komplexität von Sicherheitsherausforderungen in Blockchain-Projekten. Selbst eine scheinbar kleine Logikschwäche in einer Programmiersprache kann dramatische Auswirkungen auf die Stabilität und Verfügbarkeit einer ganzen Layer-2-Lösung haben. Die enge Zusammenarbeit zwischen unabhängigen Sicherheitsexperten und den Entwicklern ist daher unverzichtbar, um solche Risiken schnell zu identifizieren und zu beseitigen. Dass das System ohne belastbare Abwehr weiterhin anfällig für DoS durch fehlerhafte Stylus-Programme gewesen wäre, weist auch auf die Notwendigkeit hin, Panics und unerwartete Systemausfälle auf Framework-Ebene durch robustere Fehlerbehandlung und Mechanismen wie Transaktionsreverts zu begrenzen.