
vaahcms में एक स्टोर्ड क्रॉस-साइट स्क्रिप्टिंग (XSS) भेद्यता पाई गई, विशेष रूप से MediaController.php में फ़ाइल अपलोड लॉजिक और UserBase.php में storeAvatar() विधि के बीच परस्पर क्रिया में, जो एक निम्न-स्तरीय पंजीकृत उपयोगकर्ता को एम्बेडेड जावास्क्रिप्ट युक्त एक दुर्भावनापूर्ण SVG फ़ाइल अपलोड करने की अनुमति देती है। यह भेद्यता फ़ाइल भंडारण के पहले सामग्री या MIME-प्रकार सत्यापन से होने के कारण उत्पन्न होती है, जिससे दुर्भावनापूर्ण फ़ाइलें सर्वर पर एक अनुमानित, सार्वजनिक रूप से सुलभ पथ पर छोड़ दी जाती हैं।
यह भेद्यता MediaController.php में upload() विधि से उत्पन्न होती है।
$path = $request->file($input_file_name) ->storeAs($request->folder_path, $upload_file_name); जो एक हमलावर को निर्देशिका पथ निर्दिष्ट करने की अनुमति देता है, जिससे वे दुर्भावनापूर्ण फ़ाइलों (जैसे XSS-युक्त SVG) को सीधे public/ निर्देशिका में रख सकते हैं, जिससे पेलोड तुरंत वेब ब्राउज़र के माध्यम से सुलभ हो जाता है।
सफल शोषण एक हमलावर को एक सार्वजनिक भंडारण पथ (/storage/media/YYYY/MM/<controlled-filename>.svg) पर लिखी गई फ़ाइल की सामग्री और फ़ाइलनाम को नियंत्रित करने की अनुमति देता है। यदि यह सार्वजनिक रूप से सुलभ SVG बाद में किसी उपयोगकर्ता के ब्राउज़र द्वारा ``, <object>, या क्राफ्ट किए गए लिंक के माध्यम से प्रस्तुत किया जाता है, तो एम्बेडेड स्क्रिप्ट निष्पादित हो जाएगी, जिससे स्थायी XSS होगा।
POST /backend/vaah/manage/media/upload
/storage/media/YYYY/MM/<controlled-filename>.svg।{"success": false, "errors": ["Unable to decode input"]})।POC.svg देखें)।xss.svg)।/storage/media/2025/08/xss.svg पर।
enshrined/svg-sanitize)शोधकर्ता: Thaw Phone Nyo
खुलासा तिथि: 2025/10/8