Ce qui se passe
F5 Labs a observé en août 2026 une campagne de scan automatisé qui cherche des serveurs de développement Vite joignables depuis internet et en ressort avec des identifiants cloud. Le levier est CVE-2026-39364 (CVSS 8.2), corrigée en avril 2026 et documentée dans l'avis Vite GHSA-v2wj-q39q-566r.
Le mécanisme
Le serveur de développement sert les fichiers du projet par le point de montage
/@fs/. Une liste de refus, server.fs.deny, est censée bloquer les fichiers
sensibles (.env, *.crt). La faille tient à un paramètre de requête ajouté au
chemin : la vérification saute, le contenu part en clair.
GET /@fs/srv/app/.env?raw HTTP/1.1Variantes observées : ?raw, ?import&raw, ?import&url&inline. Réponse
HTTP 200, corps en clair.
Trois conditions doivent être réunies, selon l'avis Vite :
- le serveur est explicitement exposé au réseau —
--host, optionserver.host, ou un mappage de ports Docker ; - le fichier visé se trouve dans un répertoire autorisé par
server.fs.allow; - ce même fichier est refusé par un motif de
server.fs.deny.
Par défaut, Vite n'écoute que sur localhost.
Ce que les scans réclament
.envet configurations d'environnement- identifiants AWS, configurations et sauvegardes
- états d'infrastructure :
terraform.tfstate,serverless.yml - profils Azure
/etc/passwd,/proc/self/environ,/proc/1/environ,/proc/self/cwd/.env
Le dernier en dit long sur le niveau des opérateurs : /proc/self/cwd/.env lit
le fichier d'environnement relativement au processus en cours, sans avoir à
deviner le chemin absolu de l'application.
Comment les requêtes se dissimulent
Les User-Agent usurpent des robots connus — Googlebot, ClaudeBot, GPTBot,
PerplexityBot, OAI-SearchBot, Amazonbot. Les en-têtes X-Forwarded-For et
X-Real-IP sont forgés, avec des valeurs comme 34.94.237[.]62 et
104.28.219[.]193, pour franchir les listes d'accès par adresse et brouiller
l'analyse des journaux. Le trafic vient principalement des États-Unis, de
Belgique, des Pays-Bas, de Singapour et de Taïwan, depuis des plages Google
Cloud en 34.x et 35.x.
Ce qu'il faut faire
- Mettre Vite à jour — la version corrigée date d'avril 2026.
- Vérifier la publication de ports des conteneurs de développement : un
5173:5173écoute sur toutes les interfaces de l'hôte. - Chercher dans les journaux les requêtes vers
/@fs/portant?rawou?import. - Faire tourner toute clé qu'un
.envaccessible a pu contenir.
À retenir
La faille est corrigée depuis avril ; ce qui est neuf, c'est l'industrialisation
du scan. Un serveur de développement n'a aucune raison d'être joignable depuis
internet, et l'erreur vient rarement d'un --host assumé : c'est le
docker compose qui publie un port sans qu'on y pense.