वर्डप्रेस GDPR कुकी सहमति प्लगइन, जो उपयोगकर्ताओं के लिए आसान GDPR अनुपालन की सुविधा देता है, अनुचित एक्सेस कंट्रोल के लिए असुरक्षित पाया गया था। यह भेद्यता वेबसाइट पर गंभीर कमजोरियों जैसे विशेषाधिकार वृद्धि और स्टोर्ड XSS का कारण बन सकती है। इस लेखन के समय GDPR कुकी सहमति प्लगइन 700,000 से अधिक वर्डप्रेस वेबसाइटों पर सक्रिय रूप से उपयोग किया जा रहा है।
भेद्यता की समयरेखा
- रिपोर्ट किया गया - 4 फरवरी 2020
- फिक्स किया गया - 10 फरवरी 2020
- प्रभावित संस्करण - सभी संस्करण <=1.8.2
- पैच किया गया संस्करण - 1.8.3
भेद्यता की सूचना सबसे पहले wordpress.org को दी गई। जिसके बाद, प्लगइन को वर्डप्रेस रिपॉजिटरी से अस्थायी रूप से हटा दिया गया। वर्डप्रेस ने 10 फरवरी को पैच उपलब्ध होते ही प्लगइन से प्रतिबंध हटा दिया।
संस्करण <=1.8.2 पर कोई भी हैक किया जा सकता है। इसलिए जितनी जल्दी हो सके पैच किए गए संस्करण = 1.8.3 पर अपडेट करें।
GDPR प्लगइन की कमजोरियों को समझना
भेद्यता cli_policy_generator में --construct method. में निहित है। cli_policy_generator जिसे वर्डप्रेस AJAX API - ajax_policy_generator के माध्यम से निष्पादित किया जाता है, में महत्वपूर्ण क्षमता जांच का अभाव है। जिसके कारण भले ही AJAX पर एक नॉन्स कोड भेजा जाता है, यह पूरे PHP फ्रेमवर्क में अनसत्यापित रहता है।
ajax_policy_generator, बदले में, तीन क्रियाओं की अनुमति देता है: autosave_contant_data, save_contentdata, और get_policy_pageid।
इनमें से दो क्रियाएं - autosave_contant_data, save_contentdata हमलों के लिए अतिसंवेदनशील हैं। जबकि autosave_contant_data विशेषाधिकार वृद्धि का कारण बन सकता है, save_contentdata स्टोर्ड XSS का कारण बन सकता है।
save_contentdata में भेद्यता
cli_policy_generator का save_contentdata GDPR कुकी को पेज पोस्ट प्रकार के रूप में सहेजने की अनुमति देता है। जिसका फायदा उठाकर कोई भी प्रमाणित उपयोगकर्ता जिसकी अनुमति सब्सक्राइबर जितनी कम है, पोस्ट स्थिति बदल सकता है। कोई भी प्रमाणित उपयोगकर्ता एक पोस्ट प्रकाशित कर सकता है, या एक प्रकाशित पोस्ट को ड्राफ्ट में ले जा सकता है। या इससे भी बदतर, पूरी वेबसाइट को ड्राफ्ट में ले जाकर क्रैश कर सकता है।
public function save_contentdata() { $out=array( 'response'=>true, 'er'=>'' ); $content_data=isset($_POST['content_data']) ? $_POST['content_data'] : array(); $page_id=(int) isset($_POST['page_id']) ? $_POST['page_id']*1 : 0; $enable_webtofee_powered_by=(int) isset($_POST['enable_webtofee_powered_by']) ? $_POST['enable_webtofee_powered_by']*1 : 0; $id=wp_insert_post( array( 'ID'=>$page_id, //if ID is zero it will create new page otherwise update 'post_title'=>'Cookie Policy', 'post_type'=>'page', 'post_content'=>Cookie_Law_Info_Cli_Policy_Generator::generate_page_content($enable_webtofee_powered_by,$content_data,0), 'post_status' => 'draft', //default is draft ) ); if(is_wp_error($id)) { $out=array( 'response'=>false, 'er'=>__('Error','cookie-law-info'), //'er'=>$id->get_error_message(), ); }else { Cookie_Law_Info_Cli_Policy_Generator::set_cookie_policy_pageid($id); $out['url']=get_edit_post_link($id); } return $out; }
autosave_contant_data में भेद्यता
autosave_constant_data एडमिन द्वारा अभी भी संपादित करते समय GDPR कुकी को cli_pg_content_data में अस्थायी रूप से सहेजता है।
cli_pg_content_data में लापता सत्यापन जांच के कारण, कोई भी प्रमाणित उपयोगकर्ता GDPR कुकी सहमति प्लगइन वाली वेबसाइट में दुर्भावनापूर्ण जावास्क्रिप्ट कोड इंजेक्ट कर सकता है।
public function autosave_contant_data() { global $wpdb; $scan_table=$wpdb->prefix.$this->main_tb; $out=array( 'response'=>true, 'er'=>'' ); $content_data=isset($_POST['content_data']) ? $_POST['content_data'] : array(); $page_id=isset($_POST['page_id']) ? $_POST['page_id'] : ''; $enable_webtofee_powered_by=(int) isset($_POST['enable_webtofee_powered_by']) ? $_POST['enable_webtofee_powered_by']*1 : 0; if(is_array($content_data)) { $content_html=Cookie_Law_Info_Cli_Policy_Generator::generate_page_content($enable_webtofee_powered_by,$content_data); update_option('cli_pg_content_data',$content_html); }else { $out=array( 'response'=>false, 'er'=>__('Error','cookie-law-info') ); } return $out; }
पैच उपलब्ध! अभी अपडेट करें
नवीनतम संस्करण 1.8.3 पर अपडेट करें और अपनी वेबसाइट को फ़ायरवॉल से सुरक्षित करें।
एस्ट्रा फ़ायरवॉल XSS, SQLi, CSRF, LFI, RFI, स्पैम, खराब बॉट्स, OWASP टॉप 10, और अधिक जैसे हमलों से आपकी वेबसाइट की रक्षा करता है। एस्ट्रा के साथ शुरुआत करना सुपर आसान है। यहां बताया गया है कि यह कैसे करना है:
- एक योजना चुनें और साइन अप करें।
- कुछ सेल्फ-सर्व चरणों का पालन करके एस्ट्रा इंस्टॉल करें (<5 मिनट लगते हैं)।
बस इतना ही। एस्ट्रा फ़ायरवॉल सक्रिय रूप से आपकी रक्षा कर रहा है उन किसी भी हमले से जो आपके रास्ते में आ सकते हैं। अब आप एस्ट्रा डैशबोर्ड से अपनी वेबसाइट की निगरानी कर सकते हैं।
अभी भी सुनिश्चित नहीं हैं? यहां से एस्ट्रा डेमो प्राप्त करें।
यदि आपके कोई प्रश्न हैं तो नीचे कमेंट करें या हमें संदेश भेजें। हम जवाब देने का वादा करते हैं 🙂