
LearnDash में असाइनमेंट के माध्यम से संवेदनशील जानकारी का एक्सपोज़र।
LearnDash में असाइनमेंट के माध्यम से संवेदनशील जानकारी का प्रकटीकरण। बिना प्रमाणीकरण वाले आगंतुक अपलोड किए गए असाइनमेंट को ब्राउज़ और डाउनलोड कर सकते हैं।
कोई भी व्यक्ति, जिसमें बिना प्रमाणीकरण वाले आगंतुक भी शामिल हैं, सभी अपलोड किए गए LearnDash असाइनमेंट देख सकता है। चूँकि असाइनमेंट सार्वजनिक हैं, इसलिए कोई भी व्यक्ति जो इस भेद्यता के बारे में जानता है, अपलोड किए गए दस्तावेज़ों को पढ़ सकता है (जिससे संभावित GDPR घटनाएँ हो सकती हैं)। इस भेद्यता का फायदा वेबसाइट पर खाता रखे बिना भी उठाया जा सकता है।
LearnDash WordPress के लिए एक लर्निंग मैनेजमेंट सिस्टम प्लगइन है।
LearnDash के प्रभावित संस्करण (<=4.10.1) अपलोड किए गए असाइनमेंट फ़ाइलों को बिना एक्सेस सुरक्षा वाले फ़ोल्डरों में संग्रहीत करते हैं। जब कोई उपयोगकर्ता एक असाइनमेंट फ़ाइल अपलोड करता है, तो LearnDash फ़ाइल को /wp-content/uploads/assignments/ में रखता है। फ़ाइल अपना मूल नाम बनाए रखती है, हालाँकि इसमें उस पोस्ट ID और यूनिक्स टाइम स्टैम्प का उपसर्ग जोड़ा जाता है जहाँ से इसे अपलोड किया गया था।
LearnDash के पास तीन REST APIs हैं: /wp/v2/, /ldlms/v1/, और /ldlms/v2/ (वर्तमान में बीटा में)। सभी APIs, बीटा API सहित, डिफ़ॉल्ट रूप से सक्षम हैं। /ldlms/v1/ और /ldlms/v2/ APIs को learndash_rest_api_enabled फ़िल्टर का उपयोग करके विशिष्ट पोस्ट प्रकारों के लिए अक्षम किया जा सकता है (देखें class-ld-rest-api.php)।
कोई भी व्यक्ति, जिसमें बिना प्रमाणीकरण वाले आगंतुक भी शामिल हैं, केवल फ़ाइल का नाम जानकर किसी भी अपलोड किए गए असाइनमेंट फ़ाइल को डाउनलोड कर सकता है।
LearnDash प्रत्येक अपलोड की गई फ़ाइल के नाम में एक टाइम स्टैम्प जोड़ता है ताकि नाम का अनुमान लगाना कठिन हो, लेकिन टाइम स्टैम्प को ब्रूट-फोर्स किया जा सकता है। दुर्भाग्य से, एक बिना प्रमाणीकरण वाला आगंतुक जो अपलोड किए गए असाइनमेंट को पढ़ना चाहता है, उसे किसी भी फ़ाइल नाम को ब्रूट-फोर्स करने की आवश्यकता भी नहीं है। LearnDash के प्रभावित संस्करण (<=4.10.1) REST API के माध्यम से बिना प्रमाणीकरण वाले आगंतुकों के लिए सभी सबमिट किए गए असाइनमेंट प्रकाशित करते हैं। आगंतुक को केवल /wp/v2/ REST API पर sfwd-assignment के एंडपॉइंट को कॉल करना होता है। उत्तर में अपलोड की गई फ़ाइलों के पथ शामिल होते हैं, और आगंतुक बिना साइन इन किए उन्हें डाउनलोड कर सकता है।
https://example.com/wp-json/wp/v2/sfwd-assignment
LearnDash 4.10.2 2024-01-08 को जारी किया गया था। इसने REST API के माध्यम से असाइनमेंट फ़ाइल पथों के लीक होने की समस्या का समाधान किया। CVE-2024-1208 और CVE-2024-1210 बने रहे।
LearnDash 4.10.3 2024-01-31 को जारी किया गया था। इसने फ़ाइल संग्रहण स्थान को एक सुरक्षित फ़ोल्डर में स्थानांतरित कर दिया और अनधिकृत पहुँच को प्रतिबंधित करने के लिए डायनेमिक डाउनलोड लिंक पेश किए।
LearnDash ने भेद्यता रिपोर्ट को अच्छी तरह से संभाला और 90-दिवसीय जिम्मेदार प्रकटीकरण अवधि के भीतर भेद्यता का समाधान किया।