| प्लगइन का नाम | नक्स्ट |
|---|---|
| कमजोरियों का प्रकार | क्रॉस-साइट स्क्रिप्टिंग (XSS) |
| CVE संख्या | CVE-2026-46342 |
| तात्कालिकता | कम |
| CVE प्रकाशन तिथि | 2026-05-20 |
| स्रोत URL | CVE-2026-46342 |
__nuxt_island कैश विषाक्तता और XSS — क्यों नक्स्ट फ्रंटेंड का उपयोग करने वाली वर्डप्रेस साइटों को तुरंत कार्रवाई करनी चाहिए
द्वारा: हांगकांग सुरक्षा विशेषज्ञ
सारांश: नक्स्ट ने एक सुरक्षा कमजोरी को ठीक किया जहां __nuxt_island एंडपॉइंट ने अनुरोध प्रॉप्स के लिए प्रतिक्रियाओं को बंधित नहीं किया, जिससे साझा-कैश विषाक्तता की अनुमति मिली जो नक्स्ट SSR या साझा कैश के साथ द्वीपों का उपयोग करने वाली साइटों के लिए संग्रहीत या परावर्तित क्रॉस-साइट स्क्रिप्टिंग (XSS) का कारण बन सकती है। नक्स्ट फ्रंटेंड (हेडलैस, हाइब्रिड, JAMstack) के साथ वर्डप्रेस बैकएंड या साझा CDN/प्रॉक्सी के पीछे की साइटें जोखिम में हैं। यह लेख समस्या, वास्तविक शोषण परिदृश्यों और हांगकांग के सुरक्षा प्रैक्टिशनर के दृष्टिकोण से वर्डप्रेस टीमों के लिए व्यावहारिक शमन को समझाता है।.
CVE: CVE-2026-46342 — सलाह: GHSA-g8wj-3cr3-6w7v — प्रभावित नक्स्ट संस्करण: >= 4.0.0-alpha.1, <= 4.4.5 — पैच किया गया: 4.4.6
क्यों वर्डप्रेस साइट के मालिकों को परवाह करनी चाहिए (भले ही वर्डप्रेस स्वयं नक्स्ट न हो)
हांगकांग और वैश्विक स्तर पर, वर्डप्रेस विविध वितरण आर्किटेक्चर में उपयोग किया जाता है:
- पारंपरिक: वर्डप्रेस HTML सर्वर-साइड पर रेंडर करता है और इसे सीधे सेवा करता है।.
- हेडलैस / हाइब्रिड: वर्डप्रेस सामग्री बैकएंड (REST API / GraphQL) है और एक JS फ्रेमवर्क (जैसे नक्स्ट) SSR, क्रमिक पुनर्जनन, या “द्वीपों” के साथ फ्रंटेंड को रेंडर करता है।.
- CDN और कैश-भारी सेटअप: साइटें CDNs और रिवर्स प्रॉक्सी के पीछे बैठती हैं जो प्रदर्शन के लिए प्रतिक्रियाओं को कैश करती हैं।.
यदि आपकी वर्डप्रेस साइट नक्स्ट फ्रंटेंड का उपयोग करती है, या यदि नक्स्ट-प्रबंधित मार्ग उसी होस्टनाम और कैशिंग परत से वर्डप्रेस सामग्री के रूप में सेवा की जाती है, तो नक्स्ट कैश-विषाक्तता की समस्या दुर्भावनापूर्ण HTML/JS को इंजेक्ट कर सकती है जिसे ब्राउज़र पृष्ठ लोड होने पर निष्पादित करते हैं। परिणामों में XSS, क्रेडेंशियल चोरी, विज्ञापन इंजेक्शन, या आगे का समझौता शामिल हैं। यहां तक कि शुद्ध-वर्डप्रेस साइटों को भी जागरूक होना चाहिए: मिश्रित स्टैक जो CDN या प्रॉक्सी साझा करते हैं, एक कमजोर नक्स्ट मार्ग से क्रॉस-इम्पैक्ट का सामना कर सकते हैं।.
वास्तव में क्या गलत हुआ: तकनीकी व्याख्या (सादा और विस्तृत)
नक्स्ट की द्वीप आर्किटेक्चर एक एंडपॉइंट को उजागर करती है: __nuxt_island. यह एंडपॉइंट “प्रॉप्स” ले जाने वाले अनुरोधों को स्वीकार करता है जो द्वीपों (छोटे SSR टुकड़े) को रेंडर करने के लिए उपयोग किए जाते हैं। बग दो विफलताओं को मिलाता है:
- Nuxt ने के लिए रेंडर किया हुआ HTML लौटाया
__nuxt_islandअनुरोध।. - मध्यवर्ती कैश (CDNs, रिवर्स प्रॉक्सी, एज कैश) द्वारा उपयोग किया गया प्रतिक्रिया कैश कुंजी विश्वसनीय रूप से अनुरोध प्रॉप्स को शामिल नहीं करता था, इसलिए विभिन्न अनुरोध एक ही कैश प्रविष्टि से मैप हो सकते थे।.
परिणामस्वरूप, एक सेट के लिए उत्पन्न प्रतिक्रिया प्रॉप्स को एक साझा कैश में संग्रहीत किया जा सकता था और बाद में अन्य आगंतुकों को सेवा दी जा सकती थी जिन्होंने समान पथ का अनुरोध किया लेकिन विभिन्न प्रॉप्स के साथ। यदि प्रॉप्स में हमलावर-नियंत्रित मान होते हैं जो उचित एन्कोडिंग के बिना रेंडर किए जाते हैं, तो एक हमलावर एक अनुरोध तैयार कर सकता है जिसकी प्रतिक्रिया कैश की जाती है और फिर कई आगंतुकों को सेवा दी जाती है - क्लासिक कैश पॉइज़निंग जो व्यापक XSS को सक्षम करता है।.
प्रमुख तकनीकी बिंदु:
- एक कैश कुंजी को उपयोगकर्ता-विशिष्ट या अनुरोध-विशिष्ट प्रतिक्रियाओं को अलग करना चाहिए। यदि ऐसा नहीं होता है, तो उपयोगकर्ताओं को दूसरों के लिए निर्धारित सामग्री प्राप्त होती है।.
- SSR एंडपॉइंट्स के लिए जो गतिशील फ़्रैगमेंट्स को रेंडर करते हैं, कैश कुंजी को प्रॉप्स शामिल करना चाहिए या एंडपॉइंट को साझा कैशिंग से बाहर निकलना चाहिए (Cache-Control: private / no-store)।.
- XSS तब होता है जब अविश्वसनीय इनपुट HTML/JS तक सही एस्केपिंग के बिना पहुँचता है; साझा कैश प्रभाव को गुणा करते हैं।.
एक WordPress + Nuxt फ्रंटेंड के खिलाफ यथार्थवादी हमले का परिदृश्य
सामान्य तैनाती:
- WordPress REST API के माध्यम से सामग्री प्रदान करता है।.
- Nuxt फ्रंटेंड SSR करता है, डेटा का अनुरोध करता है और द्वीपों को रेंडर करता है
__nuxt_island. - साइट एक सामान्य डोमेन से सेवा की जाती है जो Nuxt सर्वर से प्रतिक्रियाओं को कैश करने वाले CDN का उपयोग करती है।.
हमलावर द्वारा उठाए जा सकने वाले शोषण के कदम:
- एक खोजें
__nuxt_islandएंडपॉइंट जो हमलावर-नियंत्रित इनपुट को क्वेरी पैरामीटर या प्रॉप्स के रूप में उपयोग किए गए अनुरोध बॉडी के माध्यम से स्वीकार करता है।. - प्रॉप्स तैयार करें जिसमें एक XSS पेलोड हो जो फ़्रैगमेंट में एस्केपिंग के बिना रेंडर किया जाएगा।.
- अनुरोध को CDN के माध्यम से भेजें और CDN को साझा कुंजी के तहत प्रतिक्रिया को कैश करने का कारण बनाएं।.
- बाद के आगंतुकों को ज़हरीला HTML प्राप्त होता है और हमलावर का स्क्रिप्ट उनके ब्राउज़रों में निष्पादित होता है।.
संभावित परिणाम:
- यदि कुकीज़ मौजूद हैं तो क्रेडेंशियल चोरी।.
- फ्रंट-एंड पर जाने वाले प्रशासकों या संपादकों के लिए सत्र चोरी।.
- डाले गए विज्ञापनों या रीडायरेक्ट से SEO और ब्रांड को नुकसान।.
- इंजेक्टेड स्क्रिप्ट या रीडायरेक्ट के माध्यम से मैलवेयर का वितरण।.
तात्कालिक कदम (आज क्या करें - प्राथमिकता के अनुसार)
यदि आपकी साइट प्रभावित हो सकती है (आप Nuxt फ्रंटेंड का उपयोग करते हैं, या एक CDN/प्रॉक्सी जो Nuxt रूट्स को सर्व करता है), तो तुरंत इस अनुक्रम का पालन करें:
- Nuxt को अपग्रेड करें पैच किए गए रिलीज़ (4.4.6 या बाद में) पर। यह निश्चित समाधान है; फ्रंटेंड टीमों के साथ समन्वय करें और अब अपग्रेड का कार्यक्रम बनाएं।.
- साझा कैशिंग को निष्क्रिय करें के लिए
__nuxt_islandCDN/एज/प्रॉक्सी पर एंडपॉइंट्स: कैश को बायपास करने के लिए पथ-आधारित नियमों को कॉन्फ़िगर करें या सेट करेंकैश-नियंत्रणजोड़करकोई-स्टोर/निजीजब तक आप अपग्रेड नहीं करते।. - मूल प्रतिक्रिया हेडर सेट करें द्वीप रूट्स के लिए: उपयोग करें
कैश-नियंत्रण: निजी, कोई-स्टोर, अधिकतम-उम्र=0याएस-मैक्सएज=0, और उपयुक्त जोड़ेंभिन्नताहेडर/कुकीज़ के लिए हेडर जो आप बदलते हैं।. - WAF नियम लागू करें (या CDN एज फ़िल्टरिंग) संदिग्ध प्रॉप्स को ब्लॉक या मॉनिटर करने के लिए: स्क्रिप्ट टैग या क्वेरी/बॉडी में एन्कोडेड स्क्रिप्ट पैटर्न वाले अनुरोधों को फ्लैग या ब्लॉक करें।.
- कैश और ऑडिट लॉग को साफ करें: किसी भी कैश किए गए द्वीप प्रतिक्रियाओं को हटा दें, और संदिग्ध के लिए लॉग खोजें
__nuxt_islandपेलोड्स जैसे अनुरोध जो शामिल हैंtags or external script references to unfamiliar hosts.Always run rules in monitoring mode first, tune them against real traffic, and escalate to blocking only after validating low false-positive rates.
Cache configuration recommendations
- For server-rendered fragments that depend on per-request data (cookies, auth, props), use
Cache-Control: privateorCache-Control: no-store. Shared caches should not store user-specific content. - If you allow caching, ensure the cache key includes any user- or request-specific identifier used by Nuxt props. Many CDNs allow custom cache key composition — include only the minimal, necessary identifiers to avoid cache collisions.
- Use
Vary:headers correctly. If responses depend onCookieorAuthorization, includeVary: Cookiewhere applicable. - Avoid caching raw HTML fragments that contain unescaped user content.
- Regularly sample cached content to check for integrity and absence of injected scripts.
Detecting if you’ve been hit (indicators of compromise)
- Unexpected inline scripts or external JS from unfamiliar hosts.
- User reports of redirects, popups, or strange behavior on Nuxt-served pages.
- CDN edge logs showing
__nuxt_islandrequests with unusual query strings or bodies followed by many cached GET responses. - Traffic spikes to island paths with new inline scripts.
- Security scanners/site-monitoring alerts flagging injected scripts.
Investigation steps:
- For server-rendered fragments that depend on per-request data (cookies, auth, props), use