कैलेंडर प्लगइन एक्सेस दोष से उपयोगकर्ताओं की सुरक्षा (CVE202512898)

WordPress प्रिटी गूगल कैलेंडर प्लगइन में टूटी हुई एक्सेस नियंत्रण
प्लगइन का नाम सुंदर गूगल कैलेंडर
कमजोरियों का प्रकार टूटी हुई पहुंच नियंत्रण
CVE संख्या CVE-2025-12898
तात्कालिकता कम
CVE प्रकाशन तिथि 2025-12-19
स्रोत URL CVE-2025-12898

Security Advisory — Pretty Google Calendar (≤ 2.0.0): Broken Access Control & Unauthenticated Google API Key Exposure (CVE‑2025‑12898)

लेखक: हांगकांग सुरक्षा विशेषज्ञ

तारीख: 2025-12-19

श्रेणी: कमजोरियों की सलाह, वर्डप्रेस सुरक्षा

सारांश

  • गंभीरता: कम (CVSS 5.3 — टूटी हुई पहुंच नियंत्रण)
  • प्रभावित सॉफ़्टवेयर: सुंदर गूगल कैलेंडर वर्डप्रेस प्लगइन — संस्करण ≤ 2.0.0
  • कमजोरियों की श्रेणी: टूटी हुई पहुंच नियंत्रण / अनुपस्थित प्राधिकरण
  • CVE: CVE‑2025‑12898
  • खुलासा तिथि: 19 दिसंबर 2025
  • प्रभाव: एक प्लगइन एंडपॉइंट के माध्यम से बिना प्रमाणीकरण वाले आगंतुकों को गूगल एपीआई कुंजी का रिसाव; कुंजी को घुमाने या प्रतिबंधित करने तक एपीआई कुंजी का संभावित दुरुपयोग।.
  • तात्कालिक अनुशंसित क्रियाएँ: प्लगइन को निष्क्रिय या हटा दें, गूगल एपीआई कुंजी को घुमाएँ/लॉक करें, कमजोर एंडपॉइंट को ब्लॉक करने के लिए सर्वर नियम लागू करें, गूगल एपीआई उपयोग और साइट लॉग का ऑडिट करें।.

एक हांगकांग सुरक्षा विशेषज्ञ के दृष्टिकोण से: यह सलाह व्यावहारिक, प्राथमिकता वाले कदम प्रदान करती है ताकि मुद्दे का आकलन, कम किया जा सके और उससे उबरने के लिए। यह बताती है कि यह कमजोरी कैसे काम करती है, शोषण कैसे हो सकता है, देखने के लिए संकेत, तात्कालिक कमियाँ (सर्वर/WAF उदाहरण सहित), डेवलपर सुधार, और एक घटना प्रतिक्रिया चेकलिस्ट।.

क्या हुआ (साधारण भाषा)

सुंदर गूगल कैलेंडर वर्डप्रेस प्लगइन के कुछ संस्करण (≤ 2.0.0) बिना उचित प्राधिकरण या नॉनस/क्षमता जांच के एक प्लगइन एंडपॉइंट के माध्यम से गूगल एपीआई कुंजी का खुलासा करते हैं। बिना प्रमाणीकरण वाले उपयोगकर्ता एंडपॉइंट को कॉल कर सकते हैं और एपीआई कुंजी शामिल कॉन्फ़िगरेशन प्राप्त कर सकते हैं। उस कुंजी के साथ एक हमलावर गूगल सेवाओं के लिए एपीआई अनुरोध कर सकता है (कुंजी की अनुमतियों और प्रतिबंधों के अधीन), जो कोटा का उपभोग कर सकता है, शुल्क लगा सकता है, या अनुमत संचालन कर सकता है।.

यह एक टूटी हुई पहुंच नियंत्रण समस्या है (CVSS 5.3)। वास्तविक जोखिम इस बात पर निर्भर करता है कि साइट के मालिक ने एपीआई कुंजी को कैसे कॉन्फ़िगर किया (रेफरर/IP प्रतिबंध, एपीआई प्रतिबंध, बिलिंग)। एक प्रतिबंधित कुंजी का व्यावहारिक जोखिम एक अप्रतिबंधित कुंजी की तुलना में बहुत कम होता है।.

तकनीकी सारांश

  • कमजोरियों का प्रकार: टूटी हुई पहुंच नियंत्रण (अनुपस्थित प्राधिकरण) जो संवेदनशील कॉन्फ़िगरेशन का खुलासा करती है।.
  • What’s leaked: Google API key (format commonly begins with “AIza…”).
  • यह कैसे उजागर होता है: एक बिना प्रमाणीकरण वाला प्लगइन एंडपॉइंट (REST मार्ग या AJAX एंडपॉइंट) प्लगइन सेटिंग्स/कॉन्फ़िगरेशन लौटाता है जिसमें गूगल एपीआई कुंजी शामिल होती है। एंडपॉइंट अनुमति जांचों (क्षमताएँ, नॉनस या REST अनुमति कॉलबैक) की कमी है।.
  • प्रभावित प्लगइन संस्करण: प्रीटी गूगल कैलेंडर ≤ 2.0.0
  • CVE: CVE‑2025‑12898
  • शोषण: तुच्छ से कम जटिलता — एक साधारण HTTP अनुरोध अंत बिंदु पर API कुंजी JSON में लौटाता है।.

नोट: सटीक शोषण पेलोड जानबूझकर रोके गए हैं ताकि स्वचालित दुरुपयोग को कम किया जा सके; लक्ष्य साइट मालिकों द्वारा त्वरित सुरक्षा सक्षम करना है।.

यह क्यों महत्वपूर्ण है

API कुंजी गूगल सेवाओं तक पहुंच को प्रमाणित कर सकती हैं। यदि लीक हो जाएं और अनियंत्रित हों, तो एक हमलावर:

  • API कोटा का उपभोग कर सकता है (जिससे सेवा में बाधा उत्पन्न होती है)।.
  • यदि परियोजना में बिलिंग सक्षम है तो अप्रत्याशित बिलिंग का कारण बन सकता है।.
  • डेटा पढ़ या लिख सकता है जहां API कुंजी पहुंच प्रदान करती है (API अनुमति मॉडल के अधीन)।.
  • यदि कुंजी सेवाओं के बीच पुन: उपयोग की जाती है तो आंतरिक उपयोग का मानचित्रण या गणना कर सकता है।.

टूटी हुई पहुंच नियंत्रण CMS दोषों का एक सामान्य वर्ग है। कुंजी संवेदनशील रहस्य हैं और इन्हें कभी भी अप्रमाणित आगंतुकों को वापस नहीं किया जाना चाहिए।.

समझौते के संकेत (IoCs) और पहचानने के टिप्स

इन संकेतों के लिए अपनी साइट और गूगल क्लाउड कंसोल की जांच करें:

  1. HTTP requests to plugin endpoints from unknown IPs — look for “pretty-google-calendar”, “pgc” or similar in request URIs.
  2. Unexpected GET/POST requests for configuration endpoints — calls to admin-ajax.php or /wp-json/ routes returning JSON containing strings like “AIza”.
  3. गूगल API कंसोल विसंगतियाँ — कुंजी से जुड़े कैलेंडर, मानचित्र या संबंधित सेवाओं के लिए उपयोग में अचानक वृद्धि; अप्रत्याशित संदर्भ/IP रेंज से अनुरोध।.
  4. बिलिंग / कोटा अलर्ट — कोटा समाप्ति या अप्रत्याशित बिलिंग शुल्क।.
  5. वेब सर्वर लॉग जो कई IPs से एक ही कॉन्फ़िगरेशन अंत बिंदु के बार-बार पढ़ने को दिखाते हैं या स्कैनिंग अवसंरचना।.

Search examples (logs): grep for “pretty-google-calendar” or for “AIza” in response bodies (if you capture responses). Check access logs for frequent calls to /wp-admin/admin-ajax.php or /wp-json with parameters indicating plugin usage.

तात्कालिक सुधार (प्राथमिकता दी गई)

यदि आप प्रीटी गूगल कैलेंडर (≤ 2.0.0) का उपयोग करने वाली साइट का प्रबंधन करते हैं, तो अब इन व्यावहारिक कदमों का पालन करें:

  1. प्लगइन को निष्क्रिय या हटा दें — उच्चतम प्राथमिकता। यदि आप साइट को ऑफ़लाइन नहीं ले जा सकते हैं, तो विक्रेता के सुधार उपलब्ध होने तक प्लगइन को निष्क्रिय करें। यह संवेदनशील अंत बिंदु को हटा देता है।.
  2. Google API कुंजी को घुमाएँ — Google Cloud Console में, उजागर API कुंजी(यों) को हटाएँ या पुनः उत्पन्न करें। एक नई कुंजी बनाएं और कड़े प्रतिबंध लागू करें।.
  3. नई API कुंजी को तुरंत प्रतिबंधित करें — HTTP रेफरर (वेबसाइट डोमेन), IP पता (सर्वर कुंजी के लिए), और विशिष्ट APIs द्वारा प्रतिबंधित करें; कोटा और अलर्ट सेट करें।.
  4. कमजोर अंत बिंदु(यों) के लिए अस्थायी सर्वर या WAF ब्लॉकिंग लागू करें — सर्वर कॉन्फ़िगरेशन (.htaccess, Nginx) के माध्यम से या WAF नियम के साथ प्लगइन पथ को ब्लॉक करें ताकि दोषपूर्ण अंत बिंदु के लिए अनुरोधों के लिए 403 लौटाए।.
  5. Google API उपयोग और सर्वर लॉग का ऑडिट करें — उजागर कुंजी का उपयोग करके संदिग्ध कॉल और अप्रत्याशित कैलेंडर परिवर्तनों की तलाश करें।.
  6. सीमाओं की निगरानी करें और लागू करें — Google Cloud Console में स्पाइक्स या असामान्य उपयोग के लिए अलर्ट जोड़ें।.
  7. जब एक पैच जारी किया जाता है — प्लगइन को ठीक किए गए संस्करण में अपडेट करें, स्टेजिंग में परीक्षण करें, और केवल कुंजी घुमाने और सुरक्षित होने की पुष्टि के बाद फिर से सक्षम करें।.

अपने साइट को तुरंत सर्वर/WAF नियमों के साथ मजबूत कैसे करें

नीचे कमजोर प्लगइन अंत बिंदुओं के खिलाफ कॉल को ब्लॉक या कम करने के लिए उदाहरण नियम दिए गए हैं। इन्हें प्लगइन के ठीक होने तक अस्थायी वर्चुअल पैच के रूप में मानें। उत्पादन में तैनात करने से पहले परीक्षण करें।.

A) प्लगइन स्लग वाले URI को ब्लॉक करने के लिए सामान्य ModSecurity नियम

SecRuleEngine On"

B) संदिग्ध admin-ajax क्रियाओं या REST मार्गों को ब्लॉक करें (ModSecurity उदाहरण)

# AJAX क्रिया या REST पथ को ब्लॉक करें जो कॉन्फ़िगरेशन लौटाता है"

C) प्लगइन फ़ोल्डर के लिए Nginx स्थान अस्वीकृति

# प्लगइन के सार्वजनिक API फ़ाइलों तक किसी भी पहुंच के लिए 403 लौटाएँ (अस्थायी कम करना)

D) सीधे पहुंच को अस्वीकार करने के लिए Apache .htaccess


RewriteEngine On
RewriteRule ^wp-content/plugins/pretty-google-calendar/ - [F,L]

E) प्रतिक्रिया सामग्री फ़िल्टर (Google API कुंजी पैटर्न का पता लगाना) — सावधानी

प्रतिक्रिया शरीर स्कैनिंग संसाधन भारी हो सकती है। सावधानी से उपयोग करें।.

# ModSecurity उदाहरण प्रतिक्रिया में Google API कुंजी पैटर्न का पता लगाने और अवरुद्ध या स्वच्छ करने के लिए"

Notes: blocking the entire plugin folder is blunt but effective; ensure you won’t break required functionality. Response-body inspection helps stop leaks but may affect performance.

पहचान हस्ताक्षर (लॉगिंग / SIEM)

इन्हें पहचान सूचियों या SIEM खोजों में जोड़ें:

  • एक्सेस लॉग प्रविष्टियाँ: GET /wp-json/*pretty-google-calendar* या /wp-content/plugins/pretty-google-calendar/* (कई IP या उच्च आवृत्ति)
  • POST or GET to /wp-admin/admin-ajax.php with ARGS containing plugin slug, action names, or parameters producing settings (e.g., “action=pgc_get_settings”)
  • Response body pattern: “AIza” followed by alphanumeric + – _ characters
  • Google कंसोल: अज्ञात संदर्भों या क्षेत्रों से API कुंजी का उपयोग, कैलेंडर, मानचित्र, या अन्य सक्षम APIs के लिए अनुरोधों में अचानक वृद्धि

खोज उदाहरण (bash/grep):

grep -i "pretty-google-calendar" /var/log/nginx/access.log

डेवलपर मार्गदर्शन — सही तरीके से कैसे ठीक करें

यदि आप प्लगइन कोडबेस को बनाए रखते हैं, तो इन सुधारों को लागू करें:

  1. अनधिकृत आगंतुकों द्वारा पहुंच योग्य एंडपॉइंट्स में API कुंजी को उजागर न करें। सार्वजनिक एंडपॉइंट्स पर JSON प्रतिक्रियाओं में कभी भी कच्ची API कुंजी न लौटाएं। यदि क्लाइंट-साइड पहुंच की आवश्यकता है, तो एक प्रतिबंधित कुंजी या एक सर्वर-साइड प्रॉक्सी का उपयोग करें जो सीमित संचालन करता है।.
  2. सभी एंडपॉइंट्स के लिए अनुमति जांच लागू करें:
    • For admin-only/config endpoints, require appropriate capabilities (e.g., current_user_can(‘manage_options’)).
    • AJAX हैंडलर्स के लिए, check_ajax_referer() और क्षमता जांच का उपयोग करें।.
    • REST मार्गों के लिए, प्रमाणीकरण और उपयोगकर्ता क्षमताओं को मान्य करने के लिए permission_callback सेट करें - उन एंडपॉइंट्स के लिए कभी भी __return_true का उपयोग न करें जो रहस्यों को प्रकट करते हैं।.
  3. आउटपुट को साफ करें और उन प्लगइन विकल्पों में रहस्यों को संग्रहीत करने से बचें जो फ्रंट-एंड JS में निर्यात होते हैं। API कुंजियों को केवल सर्वर पर रखें; जब क्लाइंट-फेसिंग JS बनाते हैं, तो केवल आवश्यक मान भेजें।.
  4. उत्पादन कुंजियों के लिए पर्यावरण चर या WP कॉन्फ़िगरेशन स्थिरांक पर विचार करें और दस्तावेज़ करें कि प्रशासकों को प्रतिबंधित कुंजियों को कैसे कॉन्फ़िगर करना चाहिए।.
  5. यूनिट और एकीकरण परीक्षण जोड़ें जो सत्यापित करते हैं कि संवेदनशील एंडपॉइंट्स अनधिकृत उपयोगकर्ताओं द्वारा सुलभ नहीं हैं; रिलीज़ प्रक्रियाओं में सुरक्षा समीक्षाएँ शामिल करें।.
  6. उपयोगकर्ताओं को स्पष्ट खुलासा और पैचिंग मार्गदर्शन प्रदान करें, जिसमें यह शामिल है कि क्या कुंजी घुमाव आवश्यक है।.

अनुमति कॉलबैक के साथ उदाहरण REST पंजीकरण:

register_rest_route( 'pretty-google-calendar/v1', '/settings', array(;

साइट मालिकों के लिए घटना प्रतिक्रिया चेकलिस्ट

यदि आपकी साइट पर प्लगइन प्रभावित है, तो इस योजना का पालन करें:

तात्कालिक

  • प्लगइन को निष्क्रिय करें।.
  • Google Cloud Console में उजागर Google API कुंजी(यों) को घुमाएँ (पुरानी कुंजी को हटाएँ, नई बनाएँ)।.
  • नई कुंजी को विशिष्ट संदर्भों और अनुमत APIs तक सीमित करें।.
  • सर्वर नियमों या WAF के माध्यम से कमजोर प्लगइन एंडपॉइंट्स को अवरुद्ध करें।.
  • फोरेंसिक्स के लिए वर्तमान साइट का स्नैपशॉट/बैकअप लें।.

प्राथमिकता दें

  • एंडपॉइंट के लिए संदिग्ध अनुरोधों के लिए एक्सेस लॉग की समीक्षा करें।.
  • असामान्य उपयोग के लिए Google Cloud निगरानी की जांच करें।.
  • साइट पर अन्य उजागर रहस्यों की खोज करें।.

Contain & eradicate

  • यदि संदिग्ध उपयोग पाया जाता है तो सभी संबंधित क्रेडेंशियल्स को घुमाएँ।.
  • दुर्भावनापूर्ण कलाकृतियों को हटा दें और आवश्यकतानुसार पूर्ण मैलवेयर स्कैन चलाएँ।.
  • जब विक्रेता पैच उपलब्ध हो, तो प्लगइन को अपडेट या प्रतिस्थापित करें; पुनः सक्षम करने से पहले स्टेजिंग में परीक्षण करें।.

पुनर्प्राप्त करें

  • सेवाओं को केवल तभी पुनः सक्षम करें जब कुंजी घुमाई गई हों और प्लगइन पैच किया गया हो।.
  • 7–14 दिनों के लिए लॉग और Google कंसोल कोटा को ध्यान से मॉनिटर करें।.

घटना के बाद

  • समयरेखा और सुधारात्मक कदमों का दस्तावेजीकरण करें।.
  • हार्डनिंग स्थिति की समीक्षा करें: WAF/सर्वर नियम, कुंजी के लिए न्यूनतम विशेषाधिकार, निगरानी और अलर्टिंग।.
  • भविष्य में त्वरित शमन के लिए WAF में वर्चुअल पैचिंग पर विचार करें।.

भविष्य में API कुंजी लीक के जोखिम को कैसे कम करें (सर्वश्रेष्ठ प्रथाएँ)

  • API कुंजी प्रतिबंधों का उपयोग करें: ब्राउज़र कुंजी के लिए संदर्भकर्ता प्रतिबंध; सर्वर कुंजी के लिए IP प्रतिबंध या API प्रतिबंध।.
  • संवेदनशील संचालन की आवश्यकता होने पर OAuth या सर्वर-से-सर्वर प्रमाणीकरण को प्राथमिकता दें।.
  • उत्पादन कुंजियों को क्लाइंट-साइड JavaScript में कभी न डालें जब तक कि यह आवश्यक न हो और संदर्भकर्ता/डोमेन द्वारा प्रतिबंधित न हो।.
  • कुंजियों को सबसे छोटे आवश्यक दायरे तक सीमित करें (न्यूनतम विशेषाधिकार)।.
  • API पर कोटा और अलर्ट सेट करें ताकि तेजी से स्पाइक्स का पता लगाया जा सके।.
  • कुंजी-घुमाव अनुसूची बनाए रखें और जहां संभव हो, स्वचालित करें।.
  • नियमित रूप से कोड और प्लगइन सेटिंग्स के लिए रहस्यों को स्कैन करें।.
  • अपने रिलीज़ पाइपलाइन में सुरक्षा समीक्षाएँ और स्वचालित परीक्षण शामिल करें।.

उदाहरण समयरेखा और क्या अपेक्षा करें

  • तात्कालिक शमन विंडो: घंटे — कुंजी घुमाएँ, सर्वर नियम लागू करें, प्लगइन निष्क्रिय करें।.
  • प्लगइन विक्रेता द्वारा पैच: दिन से सप्ताह — विक्रेता आमतौर पर एक स्थिर संस्करण जारी करते हैं; अपग्रेड करने से पहले परीक्षण करें।.
  • सुधार के बाद निगरानी: 7–30 दिन — दुरुपयोग या संबंधित गतिविधियों पर नज़र रखें।.

सामान्य प्रश्न (संक्षिप्त उत्तर)

क्या मेरा साइट निश्चित रूप से समझौता किया गया है यदि यह प्रिटी गूगल कैलेंडर का उपयोग करता है?
जरूरी नहीं। यह सुरक्षा कमजोरी एक कुंजी को पुनः प्राप्त करने की अनुमति देती है यदि एक हमलावर एंडपॉइंट को कॉल करता है। शोषण के लिए किसी को एंडपॉइंट को कॉल करना और कुंजी का उपयोग करना आवश्यक है। यही कारण है कि कुंजी को घुमाना और एंडपॉइंट को ब्लॉक करना महत्वपूर्ण है।.
यदि मैं कुंजी को घुमाता हूं और प्रतिबंध लागू करता हूं, तो क्या मुझे अभी भी प्लगइन को अपडेट करने की आवश्यकता है?
हाँ। कुंजी को घुमाना और उन्हें प्रतिबंधित करना जोखिम को कम करता है लेकिन कोडिंग दोष को समाप्त नहीं करता। जैसे ही पैच किया गया प्लगइन उपलब्ध हो, उसे अपडेट करें।.
क्या मैं सुरक्षा के लिए केवल रेफरर प्रतिबंधों पर भरोसा कर सकता हूं?
रेफरर प्रतिबंध सहायक होते हैं लेकिन सुरक्षित कोडिंग का विकल्प नहीं होते। कुंजी प्रतिबंधों और परिधीय नियंत्रणों के साथ सर्वर-साइड प्राधिकरण जांचों को मिलाएं।.

समापन विचार

टूटे हुए एक्सेस नियंत्रण जो रहस्यों को उजागर करते हैं, CMS पारिस्थितिकी तंत्र में एक पुनरावृत्त समस्या है। एक एकल गलत कॉन्फ़िगर किया गया एंडपॉइंट जो एक API कुंजी लीक करता है, कोटा दुरुपयोग, अप्रत्याशित शुल्क और द्वितीयक हमलों में बढ़ सकता है। शमन के कदम सरल हैं और जल्दी से लागू किए जाने चाहिए:

  1. एंडपॉइंट तक पहुंच हटा दें (प्लगइन को निष्क्रिय या हटा दें)।.
  2. तुरंत कुंजी को घुमाएं और प्रतिबंधित करें।.
  3. आगे के रिसाव को रोकने के लिए सर्वर/WAF नियम लागू करें।.
  4. प्लगइन को पैच करें और कॉन्फ़िगरेशन को मजबूत करें।.

एक स्तरित दृष्टिकोण अपनाएं: प्लगइन पक्ष पर सुरक्षित कोडिंग, क्लाउड/प्रदाता पक्ष पर सख्त कुंजी प्रबंधन, और मूल कारण को ठीक करते समय त्वरित शमन लागू करने के लिए परिधीय नियंत्रण।.

— हांगकांग सुरक्षा विशेषज्ञ

परिशिष्ट A — उदाहरण नियम स्निपेट (कॉपी/पेस्ट और अनुकूलित करें)

ModSecurity (उदाहरण ब्लॉकिंग प्लगइन फ़ोल्डर):

SecRuleEngine On"

Nginx (प्लगइन निर्देशिका तक पहुंच अस्वीकार करें):

location ~* /wp-content/plugins/pretty-google-calendar/ {

अपाचे .htaccess:


RewriteEngine On
RewriteRule ^wp-content/plugins/pretty-google-calendar/ - [F,L]

प्रतिक्रिया में Google API कुंजी का ModSecurity पता लगाना (सावधानी से उपयोग करें):

SecRule RESPONSE_BODY "@rx AIza[0-9A-Za-z-_]{35,}" "id:100010,phase:4,deny,status:403,log,msg:'प्रतिक्रिया में Google API कुंजी है - अवरुद्ध'"

परिशिष्ट बी — अतिरिक्त संसाधन और अगले कदम

  • किसी भी उजागर क्रेडेंशियल को तुरंत घुमाएं।.
  • कमजोर एंडपॉइंट को ब्लॉक करने के लिए अस्थायी सर्वर/WAF नियम लागू करें।.
  • एक स्थिर संस्करण उपलब्ध होने पर प्लगइन को पैच करें और स्टेजिंग में संचालन की पुष्टि करें।.
  • असामान्य गतिविधियों के लिए Google Cloud कंसोल की निगरानी करें और अलर्ट सक्षम करें।.

यदि आपको नियम तैनाती, वर्चुअल पैचिंग, या फोरेंसिक्स के लिए तीसरे पक्ष की सहायता की आवश्यकता है, तो एक प्रतिष्ठित सुरक्षा सलाहकार या घटना प्रतिक्रिया प्रदाता से संपर्क करें। किसी भी फोरेंसिक कार्य के लिए कंटेनमेंट (की घुमाना, एंडपॉइंट ब्लॉक करना) और साक्ष्य संरक्षण को प्राथमिकता दें।.

0 शेयर:
आपको यह भी पसंद आ सकता है