Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
n8n-function-vm2 — Proof-of-Concept und Lab für einen Sandbox-Escape in n8n 2.42.0: Versteckte Function/FunctionItem-Knoten führen JS im Hauptprozess aus und ermöglichen authentifizierten Mitgliedern Host-RCE. | Kitploit
Tools/GitHubGitHub/abraxas/n8n-function-vm2
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPost-ExploitationSicherheitsvirtualisierungPenetrationstestsRed TeamingLabs & Praxis
GitHubabraxas/n8n-function-vm2

n8n-function-vm2

Proof-of-Concept und Lab für einen Sandbox-Escape in n8n 2.42.0: Versteckte Function/FunctionItem-Knoten führen JS im Hauptprozess aus und ermöglichen authentifizierten Mitgliedern Host-RCE.

1vor 15 TagenNoch nicht geprüft
Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Abraxas Labs - n8n-function-vm2

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  n8n-function-vm2

n8n-function-vm2

n8n 2.42.0 - n8n GmbH

GHSA-j4p8-h8mh-rh8q hat n8n-nodes-base.code auf den JS-Task-Runner-Child verschoben. Der Produktions-Spawn fügt --disallow-code-generation-from-strings und --disable-proto=delete hinzu. Übrig bleibt der Rest der Nodes, die sie versteckt statt verschoben haben. Function.node.ts ist hidden: true. FunctionItem ebenfalls. LangChain Code ebenfalls. Das Ausblenden in der Palette ist nur ein UI-Flag. Workflow-JSON-Speichern/-Import löst den Typ weiterhin auf. Das Standard-NODES_EXCLUDE umfasst nur Execute Command und Local File Trigger. Der Ausführungspfad ist ein In-Process-vm2-NodeVM 3.12.2 im n8n-Hauptprozess.

Ein Standard-Mitglied, das einen Workflow erstellen kann, kann JS im n8n-Hauptprozess ausführen. Versteckt ist keine ACL.

IDnoch keine CVE
CWECWE-94, CWE-269
CVSSHigh: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Produktn8n
Betroffenbis 2.42.0 (86c23326); Überbleibsel von GHSA-j4p8
Authauthentifiziertes Mitglied mit Workflow-Erstellen/-Importieren/-Ausführen
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1

Was ein Angreifer tun kann

Als Standard-Mitglied einen Workflow importieren oder erstellen, dessen Node-type n8n-nodes-base.function (oder functionItem oder @n8n/n8n-nodes-langchain.code) ist, und ihn ausführen. Das JS läuft im n8n-Hauptprozess.

Das ist Host-RCE unter der n8n-UID: Instanz-Geheimnisse, der Credential-Ciphertext anderer Benutzer auf der Festplatte, die DB. Multi-Tenant-Mitglied zu Instanz-Übernahme. Keine OS-LPE. Nicht unauthentifiziert. Code v2 auf derselben Instanz sieht process nicht auf diese Weise.

Gleiches Produkt, verwandtes Überbleibsel: Databricks path join.

Wie ich es gefunden habe

Ich habe zuerst die GHSA-Welle vom 16. September 2026 gelesen, dann zehn Jagden auf Tag [email protected]. Expression-Sandbox, Code/Function/vm2, Credentials, Webhooks, HTTP/SSRF, Git-Node, Community-Pakete, Auth/SSO, Node-Injection, öffentliche API. Die meisten Highs in dieser Welle sind auf diesem Pin geschlossen. Code war nicht fertig.

Die Breaking-Change-Regeln von v3 markieren Function / FunctionItem bereits als entfernt. Auf 2.42.0 sind sie Überbleibsel, keine beabsichtigte Langzeit-Sandbox. Function injiziert außerdem this.helpers, einschließlich Helper, die der JS-Runner als nicht unterstützt auflistet. Ich brauchte kein öffentliches vm2-Gadget, um die Prozessgrenze zu beweisen.

Ich habe ein unverändertes n8nio/n8n:2.42.0 aufgesetzt, ein Mitglied registriert (nicht Instanz-Eigentümer), n8n-nodes-base.function importiert, ausgeführt. Function pid=7 ist die n8n-Haupt-PID. Dasselbe JS in Code v2: hasProcess: false. Task-Runner-Child ist pid 26. Witness N8N-FUNCTION-VM2-WITNESS.

Bereits dokumentierte Irrwege: Function-Typ als hidden/unknown abgelehnt (dann ist der Node tatsächlich ausgeschlossen); Function-pid gleich dem Task-Runner-Child (dann ist er bereits verschoben); Code v2 sieht process (dann ist der Runner nicht die Kontrolle); ein vm2-Exploit-Gadget, eine Reverse Shell, OS-LPE. Theater. Der Witness ist Haupt-PID vs. hasProcess: false.

Lab

cd lab
./run.sh

Ziel nur http://127.0.0.1:18201. Standard-NODES_EXCLUDE. Angreifer ist ein Mitglied.

authenticated-as=member
function-fields pid=7 witness=N8N-FUNCTION-VM2-WITNESS
code-fields hasProcess=False pid=None
compare function_pid=7 code_pid=None main_pid=7 runner_pid=26 who=member
SUCCESS N8N-FUNCTION-VM2 who=member function_pid=7 code_pid=None main_pid=7 runner_pid=26 N8N-FUNCTION-VM2-WITNESS

Der Fix

n8n-nodes-base.function, n8n-nodes-base.functionItem und @n8n/n8n-nodes-langchain.code zum Standard-NODES_EXCLUDE hinzufügen oder sie durch JsTaskRunnerSandbox leiten, so wie Code v2 es bereits tut. Palette-hidden reicht nicht.

Referenzen

  • github.com/n8n-io/n8n Tag [email protected]
  • Function.node.ts · Code.node.ts · nodes.config.ts · task-runner-process-js.ts
  • In der Nähe gepatcht: GHSA-j4p8-h8mh-rh8q
  • Gleiches Produkt: n8n-databricks-path-join
  • CWE-94 · CWE-269

Lizenz

GNU Affero GPL v3.0. Siehe LICENSE. Nur Loopback-Lab. Keine Gewährleistung.

Tool herunterladen