
CVE-2026-23491 - InvoicePlane के Guest Controller में अनप्रमाणित पाथ ट्रैवर्सल
| फ़ील्ड | विवरण |
|---|---|
| CVE ID | CVE-2026-23491 |
| गंभीरता | CRITICAL |
| परामर्श | परामर्श देखें |
| खोजकर्ता | Lukasz Rybak |
InvoicePlane v1.6.3 के Guest मॉड्यूल के Get कंट्रोलर की get_file विधि में एक पाथ ट्रैवर्सल भेद्यता मौजूद है। यह भेद्यता बिना प्रमाणीकरण के हमलावरों को इनपुट फ़ाइलनाम में हेरफेर करके सर्वर पर मनमानी फ़ाइलें पढ़ने की अनुमति देती है। इससे संवेदनशील जानकारी का खुलासा होता है, जिसमें डेटाबेस क्रेडेंशियल वाली कॉन्फ़िगरेशन फ़ाइलें भी शामिल हैं।
यह भेद्यता application/modules/guest/controllers/Get.php फ़ाइल में स्थित है, विशेष रूप से get_file फ़ंक्शन के भीतर।
यह फ़ंक्शन URL से सीधे $filename पैरामीटर स्वीकार करता है। यह urldecode($filename) करता है लेकिन डायरेक्टरी ट्रैवर्सल अनुक्रमों (जैसे ../) के लिए इनपुट को सैनिटाइज़ करने में विफल रहता है। फिर सैनिटाइज़ किया गया फ़ाइलनाम एक आधार डायरेक्टरी ($this->targetPath, जो uploads/customer_files/ को मैप करता है) के साथ जोड़ा जाता है और readfile() फ़ंक्शन को भेजा जाता है।
भेद्य कोड स्निपेट:
public function get_file($filename): void
{
$filename = urldecode($filename);
if ( ! file_exists($this->targetPath . $filename)) {
$ref = isset($_SERVER['HTTP_REFERER']) ? ', Referer:' . $_SERVER['HTTP_REFERER'] : '';
$this->respond_message(404, 'upload_error_file_not_found', $this->targetPath . $filename . $ref);
}
// ... headers setting content type and disposition ...
readfile($this->targetPath . $filename);
}
चूँकि $filename उपयोगकर्ता-नियंत्रित और अनियंत्रित है, एक हमलावर इच्छित डायरेक्टरी से बाहर निकलने के लिए ../../ipconfig.php जैसी स्ट्रिंग प्रदान कर सकता है।
निम्न cURL कमांड ipconfig.php फ़ाइल (जो डिफ़ॉल्ट uploads/customer_files/ डायरेक्टरी से दो डायरेक्टरी ऊपर स्थित है) को पढ़ने को प्रदर्शित करता है:
curl http://localhost/index.php/guest/get/get_file/..%2f..%2fipconfig.php
अपेक्षित आउटपुट:
सर्वर ipconfig.php की सामग्री के साथ प्रतिक्रिया करता है, जिसमें DB_PASSWORD और ENCRYPTION_KEY जैसे संवेदनशील पर्यावरण चर शामिल हैं।
हमलावर एप्लिकेशन कॉन्फ़िगरेशन, सोर्स कोड, और संभावित रूप से सिस्टम पर वेब सर्वर उपयोगकर्ता द्वारा पठनीय अन्य फ़ाइलें पढ़ सकते हैं।
इस CVE का जिम्मेदारीपूर्वक खुलासा समन्वित भेद्यता प्रकटीकरण प्रथाओं का पालन करते हुए किया गया था। यहाँ दी गई जानकारी केवल शैक्षिक और रक्षात्मक उद्देश्यों के लिए है।