
Vite Flaw Exploited to Steal Cloud Credentials
F5 Labs details a mass-scanning campaign that abuses a Vite development server flaw to harvest AWS, Azure and other cloud secrets.
Security researchers at F5 Labs have documented a mass-scanning campaign that abuses a Vite flaw to steal cloud credentials from exposed development servers. The automated effort targets internet-exposed Vite deployments and is designed to harvest configuration information from Amazon Web Services (AWS) and Microsoft Azure instances, as well as infrastructure state files. The credential harvesting activity, observed in August 2026, uses an exploit for CVE-2026-39364, a high-severity flaw in Vite with a CVSS score of 8.2. Vite is a popular build tool and local development server used by web developers; in its default setup it listens only on localhost, meaning it is not reachable from outside the computer, but operators sometimes expose it to the internet or local network by passing the --host flag, setting the server.host option, or misconfiguring Docker container port mappings.
According to a Vite advisory published in April 2026, the flaw can let an unauthenticated attacker bypass security restrictions through query parameter manipulation and leak sensitive data, including files that the server.fs.deny setting is supposed to block. For an application to be affected, three conditions must be met: the Vite development server must be explicitly exposed to the network using --host or server.host; the sensitive file must exist in the allowed directories specified by server.fs.allow; and the sensitive file must be denied with a pattern that matches a file by server.fs.deny. Under default configurations Vite binds to localhost, so owners who do not change that are not reachable. F5 Labs notes that attackers can issue an HTTP GET request to the /@fs/ endpoint, reference a sensitive file path, and append bypass query parameters such as ?raw, ?import&raw, or ?import&url&inline. This causes the server to process the request while undermining the server.fs.deny check, and the contents of the requested file are returned in plaintext in the HTTP response body.
F5 Labs observed several requests consistent with this flaw being used for reconnaissance and data extraction. The targets included environment configurations, AWS credentials, AWS configurations and backups, infrastructure state files such as terraform.tfstate and serverless.yml, Azure profiles, and system memory and environment details including /etc/passwd, /proc/self/environ, /proc/1/environ, and /proc/self/cwd/.env. Researchers said probing /proc/self/cwd/.env demonstrates an understanding of the deployment stack, because it reads the active .env file relative to the running process without needing to guess the absolute web application path. In a real compromise, such plaintext files can expose API secrets, database passwords, and cloud administrative credentials, giving an attacker unauthorized access to the cloud accounts and infrastructure those credentials protect.
The campaign also used several evasion techniques. F5 Labs reports that the malicious requests carried bogus User-Agent headers impersonating major web crawlers and artificial intelligence bots, including Googlebot, ClaudeBot, GPTBot, PerplexityBot, OAI-SearchBot, and Amazonbot. The attackers injected forged X-Forwarded-For and X-Real-IP values such as 34.94.237[.]62 and 104.28.219[.]193, which can be used to get around IP-based access lists and complicate log analysis. A significant portion of the malicious activity originated from the United States, Belgium, the Netherlands, Singapore, and Taiwan, and the attackers used Google Cloud Platform IP ranges in the 34.x and 35.x blocks to blend in with normal cloud traffic.
The practical risk is highest for development or test servers that have been left publicly reachable, because Vite is not designed to be a secure production server. If an attacker can read .env files, Terraform state files, or cloud profile files, they may obtain long-lived credentials that allow them to access the production cloud environment, change resources, or move to other systems. For website owners, businesses, and IT teams, the incident is a reminder that development servers and build tools should never be exposed to the internet, and that default configurations should be reviewed after any deployment change. Administrators should also check web server logs for requests to /@fs/ and for the bypass query parameters, and treat any exposure as an incident if sensitive files were returned. Because the attack requires only a crafted URL, any publicly reachable Vite development server should be treated as a potential target. For teams that manage public-facing infrastructure, AEU-I provides security-focused IT and infrastructure consulting to help review exposure and tighten server configurations.
How to Protect Yourself
- If you run a Vite development server, do not expose it to the internet using the --host option or server.host setting; keep it on localhost only.
- Use a private network or a tool that creates a secure private connection to your computer, instead of opening the development server to the public internet.
- Check your website or server access logs for requests containing /@fs/ and block or investigate them immediately.
- Keep Vite and all development tools updated with the latest security patches.
- Do not store real cloud passwords, API keys, or configuration files inside a project folder that a development server can serve.
- If you use Docker for development, make sure the development server port is not published to the public internet.
Vulnerabilities & Fixes
- CVE-2026-39364 A high-severity Vite vulnerability that can let an unauthenticated attacker bypass server.fs.deny restrictions via query parameter manipulation, as detailed in Vite's April 2026 advisory; affected deployments should remove public exposure. View the fix & details →
Terms Explained
- Vite A tool developers use to run a local web server while building a website, normally only reachable on the same computer.
- CVE-2026-39364 A unique public identifier for the specific Vite security flaw described in this report.
- server.fs.deny A Vite setting that tells the development server which files it should refuse to send, such as password files.
- /@fs/ endpoint A special web address used by Vite to serve files directly from the computer's file system.
- User-Agent header A line of text a browser or bot sends with each request to identify what software is making the request.
- X-Forwarded-For A line of text that can carry the original computer address of a request, and can be used to get around IP-based access lists.
- Cloud credentials Secret keys and passwords that allow access to cloud services such as AWS or Azure.