Die Ausnutzung setzt ein gültiges Konto voraus, das Workflows erstellen oder verändern darf. Eine weitere Nutzeraktion ist dafür nicht erforderlich. Gelingt der Angriff, laufen die Befehle mit den Rechten des n8n-Prozesses auf dem Hostsystem.

Security Joes teilte The Hacker News mit, dass sich auf diesem Weg unter anderem der Wert N8N_ENCRYPTION_KEY auslesen lassen könnte. Damit könnten in n8n gespeicherte Zugangsdaten entschlüsselt werden. Nach Angaben der Firma kann der Zugriff außerdem Wege zu angebundenen Datenbanken, internen Diensten und Cloud-Endpunkten eröffnen. Zum Zeitpunkt der Erstellung des Berichts hatte Security Joes keine Ausnutzung in freier Wildbahn beobachtet; auch die öffentliche Warnmeldung von n8n sagt nicht, ob die Lücke vor dem Patch bereits ausgenutzt wurde.

Technisch betrifft der Fehler die Ausdrucksverarbeitung von n8n-Workflows, in denen Formeln wie ={{ $json.email }} verwendet werden. Ein Umschreiber für abstrakte Syntaxbäume soll freie JavaScript-Bezeichner in diesen Ausdrücken in den kontrollierten Datenkontext von n8n umleiten, statt sie an die Node.js-Laufzeit zu übergeben. In Version 2.31.4 behandelte VariablePolyfill.ts jedoch ArrowFunctionExpression in einem ausdrücklichen Zweig ohne Wirkung. Dadurch konnte ein kurzer Pfeilfunktionskörper wie () => process den Bezeichner process auf das echte globale Objekt von Node.js auflösen statt auf den Sandbox-Wert.

Security Joes beschreibt zudem eine zweite Schwachstelle in den Eigenschaftsprüfungen von n8n. Diese prüfen statische Eigenschaftsnamen in Member-Ausdrücken. Bei Reflect.get() wird die angeforderte Eigenschaft jedoch als Funktionsargument übergeben. Den Forschern zufolge ließ sich dieser Unterschied nutzen, um process.getBuiltinModule wiederherzustellen, child_process zu laden und anschließend einen Befehl auf dem Host auszuführen.

Getestet wurde der Proof of Concept laut Security Joes gegen n8n 2.30.4, sowohl über das veröffentlichte Workflow-Paket als auch über eine lokale n8n-Instanz. Ein Vergleich der öffentlich verfügbaren Quelltexte von 2.31.4 und 2.31.5 bestätigt die Lücke bei Pfeilfunktionen, bestätigt aber nicht eigenständig die vollständige Reflect.get()-Ausnutzungskette aus dem Bericht von Security Joes. In der korrigierten Fassung ergänzt der Umschreiber einen eigenen Handler für ArrowFunctionExpression, der einen nackten Bezeichner in einem kurzen Pfeilfunktionskörper durch den Datenkontext leitet.

„Keines von beiden allein ist ausreichend. Keines von beiden war durch Tests abgedeckt“, erklärte das Forschungsteam von Security Joes zu den zwei Bedingungen, auf denen der Exploit beruhte. Die Forscher identifizierten die verbliebene Flucht am 14. Juli und meldeten sie am 15. Juli über das Offenlegungsprogramm von n8n. n8n veröffentlichte die bereinigten Versionen am 22. Juli.

Die neue Entdeckung reiht sich in mehrere Sandbox-Fluchten ein, die n8n seit 2025 geschlossen hat. Sie folgt auf CVE-2026-27577, eine mit 9,4 bewertete Flucht, die im Februar behoben wurde, nachdem Forscher festgestellt hatten, dass das Objekt process durch dieselbe Ebene zur Umschreibung von Bezeichnern unverändert hindurchrutschte. Security Joes hatte die neue Lücke zunächst in der Nähe dieser kritischen Einstufung erwartet; die vom Hersteller veröffentlichte aktuelle Bewertung liegt bei 8,7.