
CVE-2024-43018 के लिए प्रूफ-ऑफ-कॉन्सेप्ट: Piwigo 13.8.0 में अनसैनिटाइज़्ड max_level और min_register पैरामीटर के माध्यम से SQL इंजेक्शन, जिससे सूचना का खुलासा और संभावित कोड निष्पादन संभव होता है।
https://hdl.handle.net/10316/118126 और https://hdl.handle.net/10316/118059 थीसिस की जांच करते समय, Piwigo एप्लिकेशन में एक नई कमजोरी की खोज की गई थी। यह कमजोरी निम्नलिखित बिंदु, HOST/admin.php?page=user_list, पर एक फ़िल्टर्ड खोज में कुछ पैरामीटरों के सैनिटाइजेशन की कमी से आती है।
अधिक विशेष रूप से, Piwigo 13.8.0 और उससे नीचे, max_level और min_register पैरामीटरों में SQL इंजेक्शन के प्रति संवेदनशील है। ये पैरामीटर फ़ाइल include\ws_functions\pwg.users.php से ws_user_gerList फ़ंक्शन में उपयोग किए जाते हैं और यही फ़ंक्शन, जो ws.php फ़ाइल द्वारा किसी बिंदु पर कॉल किया जाता है, /admin.php?page=user_list में उन्नत तरीके से उपयोगकर्ताओं की खोज के लिए उपयोग किया जा सकता है। इससे SQL क्वेरीज़ में हेरफेर करके "कोड निष्पादन" और "सूचना प्रकटीकरण" जैसे कई परिणाम हो सकते हैं, इसलिए इन पैरामीटरों को किसी भी SQL क्वेरी में उपयोग करने से पहले सैनिटाइज किया जाना चाहिए। यह संस्करण 12.2.0 को प्रभावित करता है और भविष्य के संस्करणों को भी प्रभावित कर सकता है, क्योंकि संस्करण 13.8.0 में इसी तरह की एक रिपोर्ट की गई कमजोरी है।
उल्लिखित पैरामीटर (max_level और min_register) एक वेरिएबल में समूहित किए जाते हैं जो उन्हें SQL क्वेरी के निष्पादन में उपयोग करेगा:

पहले HOST/admin.php?page=user_list पेज पर प्रवेश करें

Firefox के माध्यम से भेजे गए अनुरोध का अनुसरण करते हुए, हम देख सकते हैं कि कई पैरामीटर मौजूद हैं

यदि हम पैरामीटर 'max_level' और 'min_register' में एक कोट शामिल करने के लिए हेरफेर करते हैं और फिर अनुरोध को पुनः भेजते हैं, तो एक MYSQL त्रुटि दिखाई देगी (निष्पादित SQL क्वेरी भी दिखाते हुए), जो दोनों क्षेत्रों में SQL इंजेक्शन कमजोरी के अस्तित्व को साबित करती है।
'max_level'

'min_register'

आज की तारीख में, डेवलपर्स ने इस समस्या के लिए एक सुधार लागू किया है जो केवल एक व्हाइटलिस्ट दृष्टिकोण है, जैसा कि https://github.com/Piwigo/Piwigo/issues/2197 में उल्लेख किया गया है। यह निश्चित रूप से सबसे अच्छा समाधान नहीं है, क्योंकि पैरामीटराइज्ड क्वेरीज़ जोड़ना बेहतर होगा, लेकिन चूंकि यह संभव नहीं है (डेवलपर्स द्वारा उल्लिखित लॉजिस्टिक चिंताओं के कारण), सुरक्षा की एक अतिरिक्त परत जोड़ने के लिए वेब एप्लिकेशन फ़ायरवॉल का उपयोग करना उचित है।