हांगकांग सुरक्षा चेतावनी रेवेलरी विजेट XSS (CVE20261903)

वर्डप्रेस रेवेलरी डिज़ाइन विजेट प्लगइन में क्रॉस साइट स्क्रिप्टिंग (XSS)






Stored XSS in Ravelry Designs Widget (≤1.0.0): What happened, why it matters, and how to respond


प्लगइन का नाम Ravelry डिज़ाइन विजेट
कमजोरियों का प्रकार क्रॉस-साइट स्क्रिप्टिंग (XSS)
CVE संख्या CVE-2026-1903
तात्कालिकता कम
CVE प्रकाशन तिथि 2026-02-13
स्रोत URL CVE-2026-1903

Ravelry डिज़ाइन विजेट में स्टोर किया गया XSS (≤1.0.0): क्या हुआ, यह क्यों महत्वपूर्ण है, और कैसे प्रतिक्रिया दें

लेखक: हांगकांग सुरक्षा अनुसंधान टीम — दिनांक: 2026-02-13

TL;DR — Ravelry Designs Widget WordPress प्लगइन (संस्करण ≤ 1.0.0) में एक संग्रहीत क्रॉस-साइट स्क्रिप्टिंग (XSS) भेद्यता (CVE‑2026‑1903) का खुलासा किया गया था। एक प्रमाणित उपयोगकर्ता जिसके पास योगदानकर्ता विशेषाधिकार हैं, वह पोस्ट सामग्री में संग्रहीत “लेआउट” विशेषता के माध्यम से sb_ravelry_designs शॉर्टकोड के जरिए दुर्भावनापूर्ण स्क्रिप्ट इंजेक्ट कर सकता है और इसे साइट विज़िटर्स के लिए प्रस्तुत किया जाता है। प्रभाव आवश्यक विशेषाधिकार और उपयोगकर्ता इंटरैक्शन द्वारा सीमित है, लेकिन शोषण के परिणामस्वरूप सत्र चोरी, फ़िशिंग और साइट का विकृति हो सकता है। यह पोस्ट तकनीकी मूल कारण, प्रभाव परिदृश्य, पहचान और शिकार के चरण, आज लागू करने के लिए तात्कालिक शमन, अनुशंसित WAF/वर्चुअल पैचिंग नियम, और स्थायी रूप से छिद्र को बंद करने के लिए डेवलपर सुधारों को समझाती है।.

सामग्री की तालिका

  • सारांश और प्रभावित संस्करण
  • भेद्यता तकनीकी विश्लेषण (मूल कारण)
  • शोषण प्रमाण-का-धारणा (सैद्धांतिक, स्वच्छ)
  • वास्तविक-विश्व प्रभाव और खतरे का मॉडल
  • पहचान और शिकार — कैसे पता करें कि क्या आप प्रभावित हुए
  • साइट मालिकों के लिए तात्कालिक शमन (चरण-दर-चरण)
  • WAF और वर्चुअल पैचिंग (लागू करने के लिए तैयार नियम)
  • डेवलपर सुधार — सुरक्षित कोड स्निपेट और पैटर्न
  • दीर्घकालिक सख्ती और संचालन अनुशंसाएँ
  • घटना प्रतिक्रिया चेकलिस्ट (त्वरित संदर्भ)
  • निष्कर्ष और संदर्भ

सारांश और प्रभावित संस्करण

  • सॉफ़्टवेयर: Ravelry डिज़ाइन विजेट — वर्डप्रेस प्लगइन
  • प्रभावित संस्करण: ≤ 1.0.0
  • भेद्यता वर्ग: स्टोर किया गया क्रॉस-साइट स्क्रिप्टिंग (स्टोर किया गया XSS)
  • वेक्टर: sb_ravelry_designs शॉर्टकोड — लेआउट विशेषता
  • आवश्यक विशेषाधिकार: योगदानकर्ता (प्रमाणित)
  • CVE: CVE‑2026‑1903
  • CVSSv3 बेस स्कोर: 6.5 (उपयोगकर्ता इंटरैक्शन आवश्यक, विशेषाधिकार द्वारा सीमित)

सारांश: प्लगइन एक अनफ़िल्टर्ड लेआउट विशेषता को sb_ravelry_designs शॉर्टकोड पर स्वीकार करता है, इसे wp_posts.post_content, में संग्रहीत करता है, और बाद में इसे उचित एस्केपिंग के बिना आउटपुट करता है। एक योगदानकर्ता इसलिए मार्कअप इंजेक्ट कर सकता है जो तब निष्पादित होता है जब एक आगंतुक रेंडर की गई पोस्ट को देखता है।.

भेद्यता तकनीकी विश्लेषण (मूल कारण)

शॉर्टकोड एक सामान्य वर्डप्रेस तंत्र है जो गतिशील सामग्री को एम्बेड करता है। उपयोगकर्ताओं से आने वाले किसी भी डेटा - जिसमें शॉर्टकोड विशेषताएँ शामिल हैं - को अविश्वसनीय के रूप में माना जाना चाहिए। सुरक्षित दृष्टिकोण है:

  1. इनपुट स्वीकार करते समय उन्हें मान्य और साफ करें।.
  2. आउटपुट को रेंडर समय पर आउटपुट संदर्भ (HTML विशेषता, HTML शरीर, जावास्क्रिप्ट, URL, आदि) के अनुसार एस्केप करें।.

इस मामले में प्लगइन:

  1. पंजीकरण करता है sb_ravelry_designs.
  2. प्रस्तुति नियंत्रण के लिए एक लेआउट विशेषता स्वीकार करता है।.
  3. सामग्री लेखक द्वारा प्रदान की गई विशेषता मान को साफ/मान्य करने में विफल रहता है।.
  4. पोस्ट सामग्री में कच्ची विशेषता को संग्रहीत करता है।.
  5. रेंडरिंग के दौरान मार्कअप में विशेषता को बिना एस्केप किए प्रिंट करता है (उदाहरण के लिए, सीधे एक HTML विशेषता या खंड में)।.

यह मानों को शामिल करने की अनुमति देता है जैसे '">' या onerror=… रेंडर की गई पृष्ठों में शामिल किया जा सकता है, जो संग्रहीत XSS उत्पन्न करता है। योगदानकर्ता विशेषाधिकार महत्वपूर्ण हैं क्योंकि योगदानकर्ता पोस्ट सामग्री को जोड़/संपादित कर सकते हैं; यदि वह सामग्री प्रकाशित होती है (हाथ से या स्वचालित रूप से) तो पेलोड आगंतुकों के लिए दृश्य हो जाता है।.

मूल कारण: अस्वच्छ इनपुट को एक आउटपुट संदर्भ में उचित एस्केपिंग के बिना संग्रहीत और मुद्रित किया गया।.

शोषण प्रमाण-का-धारणा (सैद्धांतिक, स्वच्छ)

निम्नलिखित वैचारिक PoC जानबूझकर गैर-हथियारबंद है और केवल नियंत्रित वातावरण में रक्षा परीक्षण के लिए अभिप्रेत है।.

सामान्य शॉर्टकोड उपयोग:

[sb_ravelry_designs layout="डिफ़ॉल्ट"]

दुर्भावनापूर्ण योगदानकर्ता ड्राफ्ट को संपादित करता है:

[sb_ravelry_designs layout='"><sb']

यदि प्लगइन प्रस्तुत करता है:

...

8. और $layout बिना एस्केपिंग के मुद्रित होता है, तो इंजेक्टेड