
CVE-2023-3460 का शोषण और विश्लेषण, जो Ultimate Member WordPress प्लगइन में एक गंभीर विशेषाधिकार वृद्धि (privilege escalation) है, साथ में प्रजनन वातावरण (reproduction environment) और शमन मार्गदर्शन (mitigation guidance) भी शामिल है।
| CVE ID | CVSS स्कोर | खोज की तिथि | प्रभावित प्लगइन | भेद्यता प्रकार |
|---|---|---|---|---|
| CVE-2023-3460 | 07/04/2023 | Ultimate Member | अनधिकृत व्यवस्थापक पहुँच |
यह अध्ययन CVE¹-2023-3460 पर केंद्रित है, जो WordPress के "Ultimate Member" प्लगइन को प्रभावित करने वाली एक गंभीर भेद्यता है, जो अनधिकृत विशेषाधिकार वृद्धि की अनुमति देती है। यह प्लगइन व्यापक रूप से उपयोग किया जाता है और WordPress साइटों पर प्रोफ़ाइल प्रबंधन के लिए उपयोग किया जाता है। यह भेद्यता एक बड़ा जोखिम प्रस्तुत करती है क्योंकि यह एक हमलावर को व्यवस्थापक अधिकार प्राप्त करने और इस प्रकार साइट का पूर्ण नियंत्रण प्राप्त करने की अनुमति देती है। यही कारण है कि इस दोष को NIST² द्वारा CVSS पैमाने पर गंभीर और 9.1 रेटेड के रूप में वर्गीकृत किया गया है।
CVE-2023-3460 प्लगइन द्वारा भूमिकाओं और अनुमतियों के प्रबंधन में एक दोष का शोषण करती है। WordPress में, WP_Capabilities³ फ़ंक्शन का उपयोग उपयोगकर्ताओं की भूमिकाओं और अनुमतियों को प्रबंधित करने के लिए किया जाता है। यह फ़ंक्शन व्यवस्थापकों को प्रत्येक उपयोगकर्ता भूमिका के लिए विशिष्ट क्षमताओं को परिभाषित करने की अनुमति देता है। हालाँकि, इस फ़ंक्शन का गलत उपयोग विशेषाधिकार वृद्धि भेद्यता को जन्म दे सकता है।
Ultimate Member के मामले में, भेद्यता एक हमलावर को WP क्षमता जाँच को बायपास करने और साइट तक व्यवस्थापक-स्तर की पहुँच प्राप्त करने की अनुमति देती है। प्लगइन उपयोगकर्ता मेटाडेटा कुंजियों की एक पूर्वनिर्धारित सूची का उपयोग करके काम करता है जिन्हें उपयोगकर्ताओं द्वारा हेरफेर नहीं किया जाना चाहिए। हालाँकि, ब्लॉकलिस्ट पर आधारित यह सुरक्षा दृष्टिकोण अक्सर अपर्याप्त होता है क्योंकि यह बायपास की संभावनाएँ छोड़ देता है।
WordPress उपयोगकर्ताओं की भूमिकाओं और अनुमतियों को wp_capabilities नामक संरचना के माध्यम से प्रबंधित करता है। यह संरचना उपयोगकर्ताओं को दी गई विभिन्न भूमिकाओं और अनुमतियों का एक क्रमबद्ध प्रतिनिधित्व है। उदाहरण के लिए, एक व्यवस्थापक के पास एक संपादक या योगदानकर्ता से भिन्न क्षमताओं का समूह होगा। ये क्षमताएँ wp_usermeta तालिका में क्रमबद्ध सरणियों के रूप में WordPress डेटाबेस में संग्रहीत की जाती हैं।
CVE-2023-3460 दोष Ultimate Member द्वारा भूमिकाओं और अनुमतियों के प्रबंधन के कार्यान्वयन में उत्पन्न होता है। प्लगइन उपयोगकर्ता मेटाडेटा कुंजियों की एक पूर्वनिर्धारित सूची का उपयोग करके संचालित होता है जिन्हें उपयोगकर्ताओं को हेरफेर नहीं करना चाहिए। इस सूची का उपयोग यह जाँचने के लिए किया जाता है कि क्या उपयोगकर्ता खाता बनाते समय इन कुंजियों को सहेजने का प्रयास कर रहे हैं। यह दृष्टिकोण एक सामान्य सुरक्षा विरोधी-पैटर्न है, जहाँ ज्ञात हानिकारक इनपुट (ब्लॉकलिस्ट) को अवरुद्ध करना सहज लग सकता है, लेकिन अपेक्षा से अधिक जटिल साबित होता है और अक्सर सुरक्षा बायपास के लिए जगह छोड़ देता है।
यहाँ, Ultimate Member उपयोगकर्ता पंजीकरण के दौरान प्रस्तुत मेटाडेटा की अपर्याप्त जाँच का उपयोग करता है। प्लगइन यह जाँचने के लिए is_metakey_banned नामक फ़ंक्शन का उपयोग करता है कि उपयोगकर्ता द्वारा प्रस्तुत मेटाडेटा की अनुमति है या नहीं। यह फ़ंक्शन जाँचता है कि प्रस्तुत मेटाडेटा प्रतिबंधित मेटाडेटा की सूची में मौजूद है या नहीं। यदि ऐसा है, तो फ़ंक्शन true लौटाता है और उपयोगकर्ता का पंजीकरण अवरुद्ध हो जाता है। अन्यथा, फ़ंक्शन false लौटाता है और उपयोगकर्ता का पंजीकरण स्वीकृत हो जाता है।
हालाँकि, WordPress कुछ उच्चारण वर्णों को डिफ़ॉल्ट वर्णों के रूप में स्वीकार करता है। यदि कोई उपयोगकर्ता उच्चारण वर्णों के साथ मेटाडेटा प्रस्तुत करता है, तो is_metakey_banned फ़ंक्शन उन्हें पहचान नहीं पाएगा और उपयोगकर्ता का पंजीकरण स्वीकृत हो जाएगा।
Ultimate Member प्लगइन विभिन्न वातावरणों में व्यापक रूप से उपयोग किया जाता है, छोटे व्यक्तिगत ब्लॉग से लेकर बड़ी ई-कॉमर्स साइटों तक। अंतिम उपयोगकर्ताओं या साइट व्यवस्थापकों के कंप्यूटर सुरक्षा कौशल के बारे में कोई विशिष्ट परिकल्पना नहीं की जा सकती है।
WordPress साइटों को होस्ट करने वाले सर्वर आमतौर पर सुरक्षित डेटा केंद्रों में स्थित होते हैं। व्यक्तिगत साइटों के लिए, भौतिक सुरक्षा उपयोगकर्ता के व्यक्तिगत वातावरण पर निर्भर करती है।
यह माना जाता है कि Ultimate Member प्लगइन आधिकारिक निर्देशों के अनुसार सही ढंग से स्थापित और कॉन्फ़िगर किया गया है। WordPress साइट को बुनियादी सुरक्षा उपायों के साथ अद्यतन बनाए रखा जाता है।
7.5 सुरक्षा कार्य
व्यवस्थापक के रूप में, इस भेद्यता से जुड़े जोखिमों को कम करने के लिए यहाँ कुछ ठोस उपाय दिए गए हैं।
उपयोगकर्ता इनपुट सत्यापन: सभी उपयोगकर्ता इनपुट को सत्यापित करने के लिए सर्वर-साइड सत्यापन लागू करें, विशेष रूप से वे जो wp_capabilities जैसे मेटाडेटा को संशोधित करते हैं। इनपुट को नियंत्रित करने के लिए ब्लॉकलिस्ट के बजाय नियमित अभिव्यक्ति या सत्यापन सूचियों (व्हाइटलिस्ट) का उपयोग करें।
CAPTCHA और दर सीमाएँ: स्वचालित हमलों को रोकने के लिए पंजीकरण फ़ॉर्म पर CAPTCHA और दर सीमाएँ एकीकृत करें। क्लाइंट-साइड जाँच: हालाँकि क्लाइंट-साइड सत्यापन अकेले पर्याप्त नहीं हैं, वे स्वचालित हमलों को रोकने और उपयोगकर्ता अनुभव को बेहतर बनाने में मदद कर सकते हैं।
लॉग निगरानी: उपयोगकर्ता भूमिकाओं में किसी भी संदिग्ध संशोधन या मेटाडेटा इंजेक्शन के प्रयासों का पता लगाने के लिए लॉग निगरानी प्रणाली स्थापित करें। यह लॉग विश्लेषण उपकरणों का उपयोग करके किया जा सकता है।
वेब एप्लिकेशन फ़ायरवॉल (WAF): ज्ञात और अज्ञात हमलों को अवरुद्ध करने के लिए WAF⁴ कॉन्फ़िगर करें, जिसमें दुर्भावनापूर्ण कोड इंजेक्शन हमले शामिल हैं। इंट्रूज़न डिटेक्शन/प्रिवेंशन सिस्टम (IDS/IPS)⁵: भेद्यता के शोषण के प्रयासों का पता लगाने के लिए IDS/IPS स्थापित करें।
उपयोगकर्ता भूमिकाओं की समीक्षा: किसी भी असामान्य विशेषाधिकार वृद्धि का पता लगाने के लिए उपयोगकर्ताओं को सौंपी गई भूमिकाओं की नियमित रूप से जाँच करें। अनुमतियों का प्रतिबंध: नए उपयोगकर्ताओं को डिफ़ॉल्ट रूप से दी जाने वाली अनुमतियों को सीमित करें और न्यूनतम विशेषाधिकार के सिद्धांत का पालन करते हुए उच्च भूमिकाओं के असाइनमेंट के लिए व्यवस्थापकीय सत्यापन की आवश्यकता हो। इस सिद्धांत के विवरण यहाँ देखें।
अद्यतनों का त्वरित अनुप्रयोग: प्लगइन्स और WordPress के लिए नियमित सुरक्षा अद्यतन करें।
डेवलपर्स को पहले बताई गई सर्वोत्तम सुरक्षा प्रथाओं में प्रशिक्षित करें, और उन्हें गलत कार्यान्वयन के जोखिमों/प्रभावों के बारे में जागरूक करें।
दोष के शोषण को शुरू करने में आपकी सहायता के लिए एक Makefile उपलब्ध है। आप इसे निम्नानुसार उपयोग कर सकते हैं:
make up सभी आवश्यक इंस्टॉलेशन के साथ WordPress लॉन्च करने के लिए। प्रतीक्षा अवधि के बाद, यह एक WordPress सर्वर लॉन्च करेगा, इसे कॉन्फ़िगर करेगा और Ultimate Member प्लगइन का संस्करण 2.6.5 स्थापित करेगा।
फिर आप Login पृष्ठ पर admin:password क्रेडेंशियल के साथ WordPress में लॉग इन कर सकेंगे। Users टैब पर जाकर, आप देख सकेंगे
कि केवल admin उपयोगकर्ता मौजूद है।

नोट: यदि आपके पास docker-compose है और docker compose नहीं है, तो आप Makefile को तदनुसार संशोधित कर सकते हैं (चर DOCKER_COMPOSE= docker-compose)।
फिर, आप दोष का शोषण लॉन्च कर सकते हैं:
make exploit
फिर आप शोषण द्वारा दिए गए क्रेडेंशियल के साथ Login पर WordPress में लॉग इन कर सकेंगे और Users टैब में देख सकेंगे कि Administrator भूमिका के साथ एक नया उपयोगकर्ता बनाया गया है।

make down WordPress सर्वर को रोकने और डेटा हटाने के लिए।
make exploit स्क्रिप्ट exploit.py लॉन्च करता है। यह स्क्रिप्ट कई चरणों में कार्य करती है:
शोषण के तकनीकी विवरण1. भेद्यता की जाँच: शोषण के साथ आगे बढ़ने से पहले, स्क्रिप्ट जाँचती है कि लक्ष्य साइट पर स्थापित Ultimate Member प्लगइन का संस्करण भेद्य है या नहीं, अर्थात संस्करण 2.6.7 से कम है।
2. सुरक्षा नॉन्स की पुनर्प्राप्ति: स्क्रिप्ट लक्ष्य साइट के पंजीकरण पृष्ठ से एक सुरक्षा नॉन्स³ पुनर्प्राप्त करती है। पंजीकरण अनुरोध को WordPress द्वारा स्वीकार करने के लिए यह नॉन्स आवश्यक है। नॉन्स पंजीकरण पृष्ठ के HTML कोड का विश्लेषण करके पुनर्प्राप्त किया जाता है।
3. भेद्यता का शोषण: स्क्रिप्ट फिर पंजीकरण पृष्ठ पर एक POST अनुरोध प्रस्तुत करती है, जिसमें एक हेरफेर किया गया पैरामीटर (wp_càpabilities[administrator]=1) शामिल होता है। यह पैरामीटर प्लगइन के सुरक्षा नियंत्रणों को बायपास करने और डेटा को गलत तरीके से क्रमबद्ध करने के लिए एक उच्चारण वर्ण (à) का उपयोग करता है, जिससे नए बनाए गए उपयोगकर्ता को व्यवस्थापक भूमिका प्रदान की जाती है।
4. शोषण की पुष्टि: अनुरोध भेजने के बाद, स्क्रिप्ट सर्वर की प्रतिक्रिया का विश्लेषण करके जाँचती है कि ऑपरेशन सफल रहा या नहीं।
| खतरे | B1 (उपयोगकर्ता डेटा की गोपनीयता) | B2 (वेबसाइट की अखंडता) | B3 (Ultimate Member प्लगइन की अखंडता) |
|---|
| M1 अनधिकृत पहुँच | X | X | X |
| M2 दुर्भावनापूर्ण कोड इंजेक्शन | X | X | |
| M3 डेटा रिसाव | X | ||
| M4 प्रतिष्ठा की हानि | X |
| नाम | लिंक |
|---|
| NIST CVE-2023-3460 | https://nvd.nist.gov/vuln/detail/CVE-2023-3460 |
| Ultimate Member Github | https://github.com/ultimatemember/ultimatemember |
| शोषण के लिए उपयोग किए गए पैकेज का संस्करण 2.6.5 | https://wordpress.org/plugins/ultimate-member/advanced/ |
| शोषण का पैच | https://github.com/ultimatemember/ultimatemember/commit/fae47c6065ce07e9a8b44501002fa5b4f16d2456 |
| शोषण की समीक्षा | https://thesecmaster.com/how-to-fix-cve-2023-3460-a-privilege-escalation-vulnerability-in-ultimate-member-wordpress-plugin/ |
| OWASP Top 10 एप्लिकेशन सुरक्षा जोखिम | https://owasp.org/www-project-top-ten/ |