Contexte de la vulnérabilité
En avril 2026, l’équipe de Vite a publié un advisory concernant la faille CVE‑2026‑39364, notée CVSS 8.2. Cette vulnérabilité permet à un attaquant non authentifié de contourner la restriction server.fs.deny en manipulant les paramètres de requête. Par défaut, le serveur de développement Vite écoute uniquement sur localhost, mais lorsqu’il est lancé avec l’option --host ou que la configuration server.host est définie, il devient accessible depuis le réseau. Cette exposition accidentelle constitue le point d’entrée principal du campagne de balayage observée en août 2026.
Mécanisme d’exploitation
L’exploitation s’appuie sur l’endpoint interne /@fs/. En ajoutant des paramètres tels que ?raw, ?import&raw ou ?import&url&inline, l’attaquant force le serveur à ignorer la règle server.fs.deny et à renvoyer le contenu du fichier demandé avec un statut HTTP 200. Trois conditions doivent être réunies : le serveur est exposé, le fichier cible figure dans les répertoires autorisés via server.fs.allow, et il correspond à un motif bloqué par server.fs.deny. Le schéma de requête typique est illustré ci‑dessous.
GET /@fs/etc/passwd?raw HTTP/1.1
Host: victim.example.com
User-Agent: Googlebot/2.1
X-Forwarded-For: 34.94.237.62
Les requêtes utilisent des User‑Agent usurpés (Googlebot, ClaudeBot, GPTBot, etc.) et des en‑têtes X-Forwarded-For ou X-Real-IP falsifiés afin de contourner les listes d’accès basées sur l’adresse IP et de masquer l’origine du trafic.
Impacts sur les environnements cloud
Les fichiers récupérés comprennent des .env, des certificats *.crt, des états Terraform (terraform.tfstate) et des fichiers de configuration Serverless (serverless.yml). Ces artefacts contiennent fréquemment des clés d’accès AWS, des profils Azure, des mots de passe de bases de données et d’autres secrets d’infrastructure. La divulgation d’un état Terraform expose la topologie complète du cloud, les identifiants de ressources et les paramètres de réseau, facilitant la prise de contrôle ultérieure des comptes cloud. De plus, l’accès à /proc/self/environ ou à /etc/passwd fournit des informations d’identification système qui peuvent être combinées avec les secrets cloud pour escalader les privilèges.
Recommandations de mitigation
Les organisations doivent d’abord empêcher l’exposition du serveur de développement : ne jamais lancer Vite avec --host en production et restreindre les mappages de ports Docker aux interfaces internes. Un pare‑feu en périphérie doit bloquer les requêtes vers /@fs/ depuis l’extérieur. Il est recommandé de désactiver server.fs.allow ou de le limiter à des répertoires strictement nécessaires, tout en renforçant server.fs.deny avec des motifs globaux (ex. **/*.env, **/*.crt). Enfin, les secrets doivent être stockés hors du répertoire servi par Vite, idéalement dans des gestionnaires de secrets dédiés (AWS Secrets Manager, Azure Key Vault) et jamais dans des fichiers accessibles via le serveur web.