
Issabel PBX संस्करण 4.0.0-6 में एक Stored Cross-Site Scripting (XSS) भेद्यता मौजूद है। यह एक प्रमाणित हमलावर को System → Users → Groups के अंतर्गत पाए जाने वाले Group और Description इनपुट फ़ील्ड के माध्यम से मनमाना JavaScript या HTML कोड इंजेक्ट करने की अनुमति देता है।
| फ़ील्ड | विवरण |
|---|
| CVE ID | CVE-2023-37191 |
| उत्पाद | Issabel PBX (issabel-pbx) |
| प्रभावित संस्करण | 4.0.0-6 |
| भेद्यता प्रकार | संग्रहीत क्रॉस-साइट स्क्रिप्टिंग (XSS) |
| गंभीरता | मध्यम |
| खोज तिथि | 7 जुलाई 2023 |
| खोजकर्ता | Sahil Ojha |
| विक्रेता होमपेज | https://www.issabel.org/ |
| स्रोत कोड | https://github.com/IssabelFoundation/issabelPBX |
| परीक्षण किया गया | Windows |
Issabel PBX संस्करण 4.0.0-6 में एक संग्रहीत क्रॉस-साइट स्क्रिप्टिंग (XSS) भेद्यता मौजूद है। एप्लिकेशन उपयोगकर्ता द्वारा प्रदान किए गए इनपुट को डेटाबेस में संग्रहीत करने और बाद में ब्राउज़र में प्रस्तुत करने से पहले उचित रूप से सैनिटाइज़ या एनकोड करने में विफल रहता है। यह एक प्रमाणित हमलावर को System → Users → Groups के अंतर्गत पाए जाने वाले Group और Description इनपुट फ़ील्ड के माध्यम से मनमाना JavaScript या HTML कोड इंजेक्ट करने की अनुमति देता है।
दुर्भावनापूर्ण पेलोड सहेजे जाने के बाद, यह सर्वर पर स्थायी रूप से संग्रहीत हो जाता है। जब भी कोई भी उपयोगकर्ता (प्रशासकों सहित) प्रभावित पृष्ठ पर जाता है, इंजेक्ट किया गया स्क्रिप्ट उनके ब्राउज़र सत्र में स्वचालित रूप से निष्पादित होता है — हमलावर की ओर से किसी और कार्रवाई की आवश्यकता नहीं होती। यही एक संग्रहीत (स्थायी) XSS को Reflected XSS से अलग करता है; प्रभाव व्यापक और अधिक खतरनाक होता है क्योंकि पेलोड पृष्ठ के सभी आगंतुकों को प्रभावित करता है।
System → Users → Groups मॉड्यूलGroup (नाम फ़ील्ड) और Description (टेक्स्ट फ़ील्ड)इस भेद्यता का सफल शोषण एक हमलावर को निम्नलिखित की अनुमति दे सकता है:
चूंकि पेलोड सर्वर पर संग्रहीत होता है, समझौता किए गए पृष्ठ पर आने वाला प्रत्येक उपयोगकर्ता प्रभावित होता है — जो एक reflected XSS हमले की तुलना में नुकसान को बढ़ा देता है।
चरण 1: व्यवस्थापक क्रेडेंशियल का उपयोग करके Issabel PBX वेब इंटरफ़ेस में लॉग इन करें।
चरण 2: System → Users → Groups पर नेविगेट करें। Group और/या Description इनपुट फ़ील्ड में, निम्नलिखित XSS पेलोड दर्ज करें:
"><script>alert(1)</script>
फ़ील्ड नीचे दिए गए स्क्रीनशॉट के समान दिखने चाहिए:

चरण 3: Save पर क्लिक करें। पेलोड अब एप्लिकेशन के डेटाबेस में स्थायी रूप से संग्रहीत हो जाता है।
चरण 4: वापस System → Users → Groups पृष्ठ पर जाएं (या किसी अन्य उपयोगकर्ता से इसे खुलवाएं)। इंजेक्ट किया गया स्क्रिप्ट ब्राउज़र में स्वचालित रूप से निष्पादित होता है, जैसा कि नीचे दिखाया गया है:

इस भेद्यता को कम करने के लिए, Issabel PBX विकास टीम को निम्नलिखित सुधार लागू करने चाहिए:
इनपुट सत्यापन: सर्वर-साइड पर उपयोगकर्ता द्वारा प्रदान किए गए सभी इनपुट को सख्ती से सत्यापित करें। उन फ़ील्ड में जिन्हें HTML फ़ॉर्मेटिंग की आवश्यकता नहीं है, HTML विशेष वर्णों (<, >, ", ', &) वाले मानों को अस्वीकार या सैनिटाइज़ करें।
आउटपुट एन्कोडिंग: संग्रहीत डेटा को ब्राउज़र में वापस प्रस्तुत करते समय, किसी भी इंजेक्ट किए गए मार्कअप को बेअसर करने के लिए संदर्भ-जागरूक आउटपुट एन्कोडिंग (जैसे, HTML एंटिटी एन्कोडिंग) लागू करें। चूंकि Issabel PBX PHP-आधारित है, कस्टम फ़िल्टरिंग के बजाय PHP के अंतर्निहित htmlspecialchars() या htmlentities() फ़ंक्शन का उपयोग करें।
सामग्री सुरक्षा नीति (CSP): उन स्रोतों को सीमित करने के लिए एक सख्त Content Security Policy HTTP हेडर लागू करें जिनसे स्क्रिप्ट निष्पादित की जा सकती हैं। एक सही ढंग से कॉन्फ़िगर की गई CSP, इनपुट सैनिटाइज़ेशन को बायपास किए जाने पर भी इंजेक्टेड स्क्रिप्ट को चलने से रोक सकती है।
नियमित सुरक्षा ऑडिट: पूरे एप्लिकेशन में इंजेक्शन भेद्यताओं की पहचान करने और उन्हें दूर करने के लिए समय-समय पर कोड समीक्षा और पैठ परीक्षण करें।
यह जानकारी केवल शैक्षिक और शोध उद्देश्यों के लिए प्रदान की गई है। लेखक इस जानकारी के किसी भी दुरुपयोग के लिए ज़िम्मेदार नहीं है। किसी भी ऐसी प्रणाली पर भेद्यता का परीक्षण करने से पहले हमेशा उचित लिखित प्राधिकरण प्राप्त करें जो आपके स्वामित्व में नहीं है।