
OpenEMR सुरक्षा समस्या
OpenEMR प्रोजेक्ट में पथ-संचरण और DoS भेद्यता
संवेदनशील फ़ंक्शन फ़ाइल में: /openemr/custom/ajax_download.php
शर्तें:
संवेदनशील संस्करण: <5.0.2, संस्करण 5.0.2 में ठीक किया गया।
इस फ़ंक्शन में संवेदनशील चर: fileName, इसे हमलावर द्वारा नियंत्रित किया जा सकता है और इसका कोई फ़िल्टरेशन या सत्यापन नहीं है।
हमलावर सर्वर भंडारण से कोई भी फ़ाइल (जो www-data उपयोगकर्ता द्वारा पढ़ने योग्य है) डाउनलोड कर सकता है।
यदि अनुरोधित फ़ाइल www-data उपयोगकर्ता के लिए लिखने योग्य है और निर्देशिका /var/www/openemr/sites/default/documents/cqm_qrda/ मौजूद है, तो इसे सर्वर से हटा दिया जाएगा।
मौजूदा निर्देशिका न होना कोई बड़ी समस्या नहीं है, क्योंकि हमलावर इसे बना सकता है। अपलोड फ़ंक्शन /openemr/controller.php?document&upload में चर "higher_level_path" हमें निर्देशिका का नाम प्रदान करने की अनुमति देता है, जहाँ फ़ाइल संग्रहीत की जाएगी, और यदि यह निर्देशिका मौजूद नहीं है (और "patient_id" चर संख्यात्मक है और 0 से बड़ा है) तो इसे "700" अधिकारों के साथ बनाया जाएगा और "www-data" उपयोगकर्ता के स्वामित्व में होगा।
यह DoS का कारण बन सकता है, क्योंकि हमलावर सर्वर से कुछ कॉन्फ़िग/php स्क्रिप्ट हटा सकता है।
सूचना का खुलासा।
सेवा से वंचित करना।
पी.एस. त्वरित प्रतिक्रिया और पैच के लिए OpenEMR टीम से ब्रैडी जी. मिलर को विशेष धन्यवाद