
NotCVE-2026-0009 — Updated!
NitroShare v0.3.4 में पाथ ट्रैवर्सल भेद्यता
nitroshare में पाथ ट्रैवर्सल भेद्यता
विवरण
NitroShare Desktop v0.3.4 में उसके LAN फ़ाइल ट्रांसफ़र सर्वर में एक पाथ ट्रैवर्सल भेद्यता मौजूद है। सर्वर बिना प्रमाणीकरण के सभी नेटवर्क इंटरफ़ेस (पोर्ट 40818) पर सुनता है। फ़ाइलें प्राप्त करते समय, प्रेषक के JSON आइटम हेडर से name फ़ील्ड को यह सत्यापित किए बिना पास किया जाता है कि हल किया गया पथ ट्रांसफ़र रूट निर्देशिका, C:\UserName\Downloads\NitroShare के भीतर रहता है या नहीं। उसी LAN पर मौजूद एक हमलावर ../ (क्लासिक डॉट डॉट स्लैश अटैक) अनुक्रमों वाली एक क्राफ्टेड फ़ाइलनाम भेज सकता है ताकि वह वर्तमान उपयोगकर्ता की पहुँच वाली किसी भी जगह पर फ़ाइलें लिख सके, जिसमें अगले लॉगिन पर कोड निष्पादन के लिए Windows स्टार्टअप फ़ोल्डर भी शामिल है (इसलिए POC बनाया गया था)। किसी उपयोगकर्ता इंटरैक्शन की आवश्यकता नहीं है। इसके अतिरिक्त, TLS डिफ़ॉल्ट रूप से अक्षम है (प्रमाणीकरण की वह विधि जो एप्लिकेशन प्रदान करता है), जिसका अर्थ है कि डिफ़ॉल्ट रूप से किसी प्रमाणीकरण की आवश्यकता नहीं है, जो मुझे लगता है कि आईटी और सूचना सुरक्षा में वर्षों के काम के आधार पर अधिकांश उपयोगकर्ता करेंगे।
पुनरुत्पादन के चरण
- LAN से TCP पोर्ट 40818 पर NitroShare के ट्रांसफ़र सर्वर से कनेक्ट करें।
- एक JSON ट्रांसफ़र हेडर पैकेट भेजें:
{"name":"attacker","size":"<n>","count":"1"}। - पाथ ट्रैवर्सल फ़ाइलनाम वाला एक JSON आइटम हेडर पैकेट भेजें:
{"name":"../../AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/payload.exe","directory":false,"created":"0","last_modified":"0","last_read":"0","size":"<n>"} - दुर्भावनापूर्ण फ़ाइल सामग्री वाले बाइनरी पैकेट भेजें।
- फ़ाइल डाउनलोड निर्देशिका के बाहर हमलावर द्वारा चुने गए पथ पर लिखी जाती है।
- यदि स्टार्टअप फ़ोल्डर को लक्षित किया जाता है, तो पेलोड अगले उपयोगकर्ता लॉगिन पर स्वचालित रूप से निष्पादित होता है।
एक कार्यशील PoC प्रदान किया गया है (poc_path_traversal_via_lan_transfer___arbitrary_file_w.py) और इसे Windows पर NitroShare 0.3.4 के विरुद्ध सत्यापित किया गया है।
अनुशंसित सुधार
- प्राप्त फ़ाइलनामों को सैनिटाइज़ करें — पथ विभाजकों (
/,\) और..अनुक्रमों को हटाएं या अस्वीकार करें।QDir::absoluteFilePath()के साथ रिज़ॉल्व करने के बाद, आगे बढ़ने से पहले सत्यापित करें कि परिणाम रूट ट्रांसफ़र निर्देशिका से शुरू होता है। - पासवर्ड आवश्यक करें या डिफ़ॉल्ट रूप से TLS सक्षम करें — TLS सक्षम के साथ शिप करें और पहली बार चलाने पर प्रमाणपत्र स्वतः उत्पन्न करें, या पासवर्ड रखने का विकल्प बनाएं।
- ट्रांसफ़र अनुमोदन प्रॉम्प्ट जोड़ें — प्राप्त फ़ाइलों को डिस्क पर लिखने से पहले उपयोगकर्ता को प्रॉम्प्ट करें।
- प्रमाणीकरण लागू करें — ट्रांसफ़र स्वीकार करने से पहले एक पेयरिंग तंत्र (साझा गुप्त, QR कोड, या प्रमाणपत्र विनिमय) की आवश्यकता हो।
प्रकटीकरण समयरेखा
- 13 अप्रैल, 2026 - Github रेपो पर प्रकाशित ई-मेल के माध्यम से डेवलपर से संपर्क किया गया। कोई प्रतिक्रिया नहीं।
- 19 अप्रैल, 2026 - दूसरा प्रयास। कोई प्रतिक्रिया नहीं।
- 3 मई, 2026 - तीसरा प्रयास। कोई प्रतिक्रिया नहीं।
- 22 जुलाई, 2026 - NotCVE-2026-0009 निर्दिष्ट किया गया
- 28 जुलाई, 2026 - CVE-2026-66050 निर्दिष्ट किया गया