BookinglyTech News
Ciberseguridad

Campaña de escaneo masivo explota un fallo de Vite para robar credenciales cloud

F5 Labs documenta el robo automatizado de credenciales de AWS y Azure, configuraciones y ficheros de estado desde servidores de desarrollo de Vite expuestos a internet.

2 min de lecturaThe Hacker News0 vistas

F5 Labs ha puesto detalle a una campaña de escaneo masivo que va a por servidores de desarrollo de Vite expuestos a internet. El objetivo es cosechar credenciales de nube: claves de AWS, perfiles de Azure, configuraciones, copias de seguridad y ficheros de estado de infraestructura como terraform.tfstate o serverless.yml. La actividad se detectó en agosto de 2026 y explota CVE-2026-39364, un fallo de severidad alta, 8,2 en CVSS, del que Vite avisó en abril.

El fallo es un bypass de las restricciones de lectura del dev server. Añadiendo parámetros como ?raw, ?import&raw o ?import&url&inline a la petición, el servidor responde con un HTTP 200 a ficheros que server.fs.deny debería bloquear, típicamente .env y certificados. El atacante pide una ruta concreta contra el endpoint /@fs/ y la comprobación se cae: el contenido sale en texto plano en el cuerpo de la respuesta.

Tres condiciones y un puerto mal mapeado

Para que un despliegue sea vulnerable tienen que darse tres cosas a la vez: que el dev server se exponga a la red con --host o server.host, que el fichero sensible esté dentro de los directorios permitidos por server.fs.allow, y que exista una regla en server.fs.deny que lo deniegue. En configuración por defecto Vite escucha solo en localhost, pero basta con pasar --host, tocar server.host o mapear mal un puerto en Docker para que quede accesible desde la red local o directamente desde internet.

F5 lista lo que vio salir: variables de entorno, credenciales y configuraciones de AWS, ficheros de estado de Terraform, perfiles de Azure y rutas de sistema como /etc/passwd, /proc/self/environ o /proc/self/cwd/.env. Este último caso les parece revelador, porque leer el .env relativo al proceso en marcha implica entender la pila de despliegue sin necesidad de adivinar la ruta absoluta de la aplicación.

Las peticiones se disfrazan con User-Agent falsos que imitan rastreadores y bots de IA (Googlebot, ClaudeBot, GPTBot, PerplexityBot, OAI-SearchBot, Amazonbot) e inyectan cabeceras X-Forwarded-For y X-Real-IP forjadas para saltarse listas de acceso por IP y ensuciar los logs. Buena parte del tráfico salió de Estados Unidos, Bélgica, Países Bajos, Singapur y Taiwán, y los atacantes usaron rangos de Google Cloud (34.x y 35.x) para pasar desapercibidos.

La lección operativa no es nueva, pero se repite: un dev server no es un servidor de producción y no debería estar en internet. Quien tenga Vite en esa situación debería actualizar a una versión corregida y revisar si ha expuesto el puerto por Docker o por configuración. También conviene mirar los logs en busca de peticiones a /@fs/ con esos parámetros, aunque filtrar por IP o por User-Agent no sirve de mucho cuando el atacante falsifica ambos campos.