Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2025-30208 PoC — Vite bypasses server.fs.deny when using `?raw??`

Source
Associated Vulnerability
Title:Vite bypasses server.fs.deny when using `?raw??` (CVE-2025-30208)
Description:Vite, a provider of frontend development tooling, has a vulnerability in versions prior to 6.2.3, 6.1.2, 6.0.12, 5.4.15, and 4.5.10. `@fs` denies access to files outside of Vite serving allow list. Adding `?raw??` or `?import&raw??` to the URL bypasses this limitation and returns the file content if it exists. This bypass exists because trailing separators such as `?` are removed in several places, but are not accounted for in query string regexes. The contents of arbitrary files can be returned to the browser. Only apps explicitly exposing the Vite dev server to the network (using `--host` or `server.host` config option) are affected. Versions 6.2.3, 6.1.2, 6.0.12, 5.4.15, and 4.5.10 fix the issue.
Description
CVE-2025-30208 - Vite Arbitrary File Read PoC
Readme
# CVE-2025-30208 - Vite Arbitrary File Read PoC

This is a Proof-of-Concept (PoC) script to exploit CVE-2025-30208, allowing arbitrary file reads on Vite development servers.

## Vulnerability Details
Vite, a provider of frontend development tooling, has a vulnerability in versions prior to 6.2.3, 6.1.2, 6.0.12, 5.4.15, and 4.5.10. `@fs` denies access to files outside of Vite's serving allow list. Adding `?raw??` or `?import&raw??` to the URL bypasses this limitation and returns the file content if it exists. This bypass exists because trailing separators such as `?` are removed in several places, but are not accounted for in query string regexes. The contents of arbitrary files can be returned to the browser. Only apps explicitly exposing the Vite dev server to the network (using `--host` or `server.host` config option) are affected. Versions 6.2.3, 6.1.2, 6.0.12, 5.4.15, and 4.5.10 fix the issue.

## Affected Versions
- <= 6.2.2
- <= 6.1.1
- <= 6.0.11
- <= 5.4.14
- <= 4.5.9

## Features
- Checks if a Vite server is vulnerable to arbitrary file read.
- Supports single target and multiple domain testing.
- Option to save vulnerable URLs to an output file.
- Verbose mode to display file content (first 500 characters for safety).

## Requirements
- Python 3.x
- Required modules:
  - `requests`
  - `argparse`
  - `urllib3`
  - `colorama`

You can install dependencies using:
```sh
pip install -r requirements.txt
```

## Usage
### Single Target
```sh
python3 exploit.py http://localhost:5173 -f /etc/passwd
```

### Multiple Targets
```sh
python3 exploit.py -l domains.txt -f /etc/passwd
```
- `domains.txt` should contain one target URL per line.

### Additional Options
- `-v` : Display file content if vulnerable.
- `-o output.txt` : Save vulnerable URLs to a file.

Example:
```sh
python3 exploit.py http://localhost:5173 -f /etc/passwd -v -o results.txt
```

## Disclaimer
This script is for educational and authorized security testing purposes only. Unauthorized use against systems you do not own is illegal and unethical.

File Snapshot

[4.0K] /data/pocs/4d498ffed6b59cd97e404815703b83c4752ab8e6 ├── [3.8K] CVE-2025-30208.py ├── [2.0K] README.md └── [ 35] requirements.txt 0 directories, 3 files
Shenlong Bot has cached this for you
Remarks
    1. It is advised to access via the original source first.
    2. Local POC snapshots are reserved for subscribers — if the original source is unavailable, the local mirror is part of the paid plan.
    3. Mirroring, verifying, and maintaining this POC archive takes ongoing effort, so local snapshots are a paid feature. Your subscription keeps the archive online — thank you for the support. View subscription plans →