
GeoServer और GeoTools SQL इंजेक्शन (CVE-2023-25157 और CVE-2023-25158)
इस रिपॉजिटरी में GeoServer प्लेटफ़ॉर्म और GeoTools लाइब्रेरी में पाई गई SQL Injection भेद्यताओं का विस्तृत विवरण और पुनरुत्पादन चरण शामिल हैं। इस भेद्यता को GeoServer के लिए पहचानकर्ता CVE-2023-25157 और GeoTools के लिए CVE-2023-25158 सौंपा गया है।
GeoServer Java में लिखा गया एक ओपन-सोर्स सॉफ़्टवेयर सर्वर है जो भू-स्थानिक (geospatial) डेटा देखने, संपादित करने और साझा करने की क्षमता प्रदान करता है। इसे भौगोलिक सूचना प्रणाली (GIS) डेटाबेस, वेब-आधारित डेटा और व्यक्तिगत डेटासेट जैसे विभिन्न स्रोतों से भू-स्थानिक डेटा वितरित करने के लिए एक लचीला, कुशल समाधान के रूप में डिज़ाइन किया गया है।
GeoServer डेटा साझाकरण के लिए Open Geospatial Consortium (OGC) मानकों का पालन करता है, जिनमें Web Feature Service (WFS), Web Map Service (WMS), और Web Coverage Service (WCS) शामिल हैं। मानकों का यह पालन इस बात को सुनिश्चित करता है कि GeoServer से डेटा का उपयोग विभिन्न प्रकार के अनुप्रयोगों में किया जा सकता है, जैसे कस्टम-निर्मित GIS सॉफ़्टवेयर से लेकर रेडी-मेड समाधान तक।
GeoServer मुख्य रूप से Spring Framework पर निर्मित है, हालाँकि यह कई अन्य लाइब्रेरी और फ्रेमवर्क का भी उपयोग करता है, जिनमें शामिल हैं:
GeoTools: एक ओपन-सोर्स Java लाइब्रेरी जो भू-स्थानिक डेटा के लिए उपकरण प्रदान करती है। GeoServer अपनी कई मुख्य कार्यक्षमताओं, जैसे डेटा पढ़ने, लिखने और रूपांतरण के लिए GeoTools का उपयोग करता है।प्रश्नगत भेद्यताएँ Open Geospatial Consortium (OGC) मानकों द्वारा परिभाषित फ़िल्टर और फ़ंक्शन अभिव्यक्तियों में गहराई से अंतर्निहित हैं। ये अभिव्यक्तियाँ भू-स्थानिक डेटा क्वेरी और हेरफेर की रीढ़ हैं, जो GeoServer और GeoTools जैसी प्रणालियों की कार्यक्षमता में महत्वपूर्ण भूमिका निभाती हैं।
जब इन भेद्यताओं का शोषण किया जाता है, तो वे गंभीर सुरक्षा उल्लंघनों का कारण बन सकती हैं। सूचना का अनधिकृत प्रकटीकरण एक प्राथमिक चिंता है, क्योंकि हमलावर डेटाबेस में संग्रहीत संवेदनशील डेटा तक पहुँच प्राप्त कर सकते हैं। अनधिकृत संशोधन एक और संभावित परिणाम है, जिसमें हमलावर अपने लाभ के लिए डेटा में हेरफेर करने में सक्षम होते हैं। इसके अलावा, ये भेद्यताएँ सेवा में व्यवधान को भी सुगम बना सकती हैं, जिसमें एक सफल शोषण संभवतः सेवा की अनुपलब्धता का कारण बन सकता है।
निम्नलिखित प्रत्येक पहचानी गई भेद्यता का गहन विश्लेषण प्रदान करता है। प्रत्येक भेद्यता का विस्तार से अध्ययन किया गया है, जिसमें इसकी विशिष्ट विशेषताओं, इसकी अभिव्यक्ति की ओर ले जाने वाली स्थितियों और इसके शोषण के संभावित प्रभावों पर चर्चा की गई है। यहाँ GeoServer के लिए पाई गई भेद्यताओं का विस्तृत विवरण दिया गया है:
PropertyIsLike फ़िल्टर: यह भेद्यता तब मौजूद होती है जब PropertyIsLike फ़िल्टर का उपयोग किसी String फ़ील्ड के साथ किसी भी रिलेशनल डेटाबेस-आधारित Store, encode फ़ंक्शन सक्षम वाले PostGIS DataStore, या किसी इमेज मोज़ेक के साथ किया जाता है जिसका इंडेक्स रिलेशनल डेटाबेस में संग्रहीत होता है।strEndsWith फ़ंक्शन: यह भेद्यता तब उत्पन्न होती है जब strEndsWith फ़ंक्शन का उपयोग encode फ़ंक्शन सक्षम वाले PostGIS DataStore के साथ किया जाता है।strStartsWith फ़ंक्शन: यह भेद्यता तब पाई जाती है जब strStartsWith फ़ंक्शन का उपयोग encode फ़ंक्शन सक्षम वाले PostGIS DataStore के साथ किया जाता है।FeatureId फ़िल्टर: यह भेद्यता तब मौजूद होती है जब FeatureId फ़िल्टर का उपयोग किसी ऐसे डेटाबेस तालिका के साथ किया जाता है जिसमें String प्राथमिक कुंजी कॉलम हो और जब prepared statements अक्षम हों।jsonArrayContains फ़ंक्शन: यह भेद्यता तब पाई जाती है जब jsonArrayContains फ़ंक्शन का उपयोग String या JSON फ़ील्ड के साथ और PostGIS या Oracle DataStore के साथ किया जाता है (केवल GeoServer 2.22.0 और बाद के संस्करणों में)।DWithin फ़िल्टर: यह भेद्यता तब पता चलती है जब DWithin फ़िल्टर का उपयोग Oracle DataStore के साथ किया जाता है।और यहाँ GeoTools के लिए पाई गई भेद्यताओं का विस्तृत विवरण है:
PropertyIsLike फ़िल्टर:
strEndsWith फ़ंक्शन:
strStartsWith फ़ंक्शन:
FeatureId फ़िल्टर:
jsonArrayContains फ़ंक्शन:
DWithin फ़िल्टर:
CVE-2023-25157 GeoServer SQL Injection भेद्यता से प्रभावित हैं।CVE-2023-25158 GeoTools SQL Injection भेद्यता से प्रभावित हैं।