Der Kern des Problems liegt darin, wie Orkes Conductor Skripte innerhalb eines Workflows ausführt. Die Analyse von Empirical Security beschreibt es so: Eine INLINE-Aufgabe – ebenso wie LAMBDA-, DO_WHILE- und SWITCH-Aufgaben – wertet einen vom Nutzer gelieferten JavaScript- oder Python-Ausdruck aus, und Conductor baut den zugehörigen Auswerter auf einem GraalVM-Kontext auf, der mit HostAccess.ALL konfiguriert ist.
Genau diese Konfiguration hebt die Sandbox auf. Der eingeschleuste Code greift damit per Reflection in die Java-Laufzeitumgebung durch und führt Betriebssystembefehle mit den Rechten des Conductor-Prozesses aus – und der läuft in vielen Installationen mit Root-Rechten.
Eine Hürde, die Angreifer aufhalten könnte, gibt es praktisch nicht. “Kein Login steht im Weg, denn der Open-Source-Server erzwingt standardmäßig keine Authentifizierung und lässt seine Workflow-API offen. Ein einziger unauthentifizierter POST-Aufruf registriert einen Workflow mit einer bösartigen INLINE-Aufgabe und startet ihn”, schreibt Empirical Security.
Der zeitliche Ablauf zeigt, wie schnell aus einer gepatchten Lücke ein akutes Problem wurde: Der Fix erschien im Juni mit Version 3.30.2. Anfang August wurde Proof-of-Concept-Code veröffentlicht, kurz darauf setzten die ersten Ausnutzungsversuche ein. Empirical Security identifizierte am 21. August Angriffe in freier Wildbahn. Fortinet blockierte allein zwischen dem 8. und 9. September rund 1.300 Ausnutzungsversuche und veröffentlichte in dieser Woche eine Outbreak-Warnung zur weiterhin laufenden Ausnutzung.
Als Gegenmaßnahmen empfiehlt sich zunächst das Update auf Conductor 3.30.2 oder neuer. Darüber hinaus sollten Organisationen den externen Zugriff auf die Workflow-API-Endpunkte einschränken, Conductor-Installationen hinter einer Firewall betreiben und die Dienste nicht direkt ins Internet stellen.
Wer verwundbare Versionen im Einsatz hatte, sollte die betroffenen Systeme auf Spuren eines Einbruchs prüfen. Laufende Instanzen lassen sich zudem auf verdächtige Workflow-Einreichungen und nicht autorisierte Befehlsausführungen überwachen.
