CVE-2026-39363: Vite bloqueia um arquivo via HTTP, mas o serve através do WebSocket HMR

CVE-2026-39363 foi descoberta no Vite — uma ferramenta de build e servidor de desenvolvimento popular para o desenvolvimento web moderno. A vulnerabilidade permite que atacantes remotos leiam arquivos arbitrários acessíveis ao processo do servidor. Ela foi introduzida no Vite 6.0.0 e pode ser explorada quando o servidor de desenvolvimento é exposto à rede, por exemplo, quando iniciado com vite --host.
Para uma requisição HTTP comum, o Vite restringe o acesso a arquivos fora dos diretórios permitidos: /@fs/etc/passwd?raw → 403 Restricted No entanto, o mesmo arquivo podia ser obtido através do WebSocket HMR, onde a verificação correspondente estava ausente. O WebSocket HMR é protegido por um token, mas o Vite o verificava apenas para conexões com cabeçalho Origin. Um cliente não-navegador podia conectar sem cabeçalho Origin e sem token — os desenvolvedores presumiam que tal cliente já tinha acesso à interface HTTP e que o WebSocket não fornecia capacidades adicionais. Com a introdução da Environment API no Vite 6.0, essa suposição não era mais válida. O WebSocket HMR ganhou o mecanismo RPC vite:invoke e o método fetchModule, permitindo que clientes solicitassem o código-fonte de módulos. Através de fetchModule, um atacante podia solicitar um arquivo local arbitrário: file:///etc/passwd?raw O método fetchModule chamava transformRequest sem aplicar a verificação server.fs.allow que protegia a rota HTTP. O caminho ?raw então lia o arquivo do disco e retornava seu conteúdo via WebSocket.
Com acesso de rede ao servidor de desenvolvimento, um atacante poderia potencialmente ler arquivos .env, chaves SSH, credenciais AWS, tokens npm/GitHub e outros dados locais acessíveis ao processo do servidor. Não era necessário conhecimento prévio do token HMR.
A vulnerabilidade foi corrigida no Vite 6.4.2, 7.3.2 e 8.0.5. As verificações de acesso a arquivos foram movidas diretamente para transformRequest, e fetchModule foi desabilitado para o WebSocket HMR do lado do cliente.
Vulnerabilidades
8.2
CVE-2026-39363
Pesquisadores
Codeant-Ai-Security
Odgrso
Tronglinh23
Produto
Vite