
CVE-2026-9806 एक संग्रहीत क्रॉस-साइट स्क्रिप्टिंग (Stored XSS) भेद्यता है जो पैच किए गए रिलीज़ से पहले के CTI Transmute संस्करणों को प्रभावित करती है।
CVE-2026-9806, CTI Transmute के पैच किए गए रिलीज़ से पहले के संस्करणों को प्रभावित करने वाली एक Stored Cross-Site Scripting (Stored XSS) भेद्यता है। यह दोष नोटिफिकेशन पैनल में मौजूद है, जहाँ उपयोगकर्ता-नियंत्रित convert नामों वाले नोटिफिकेशन संदेशों को उचित sanitization के बिना innerHTML का उपयोग करके नोटिफिकेशन बेल ड्रॉपडाउन में रेंडर किया जाता है। यदि कोई हमलावर ऐसा convert नाम बना या प्रभावित कर सकता है जो नोटिफिकेशन में दिखाई देता है, तो प्रमाणित उपयोगकर्ता के नोटिफिकेशन पैनल खोलने पर उसके ब्राउज़र में मनमाना JavaScript निष्पादित हो सकता है।
नोटिफिकेशन पैनल innerHTML का उपयोग करके नोटिफिकेशन प्रविष्टियाँ बनाता है। नोटिफिकेशन संदेशों में convert नाम शामिल होते हैं, जो उपयोगकर्ता-नियंत्रित होते हैं। चूँकि ये मान बिना HTML एन्कोडिंग या sanitization के सीधे DOM में डाले जाते हैं, convert नाम में मौजूद कोई भी HTML या JavaScript ब्राउज़र द्वारा व्याख्यायित किया जाता है।
संकल्पनात्मक रूप से:
Attacker creates or influences a convert name
│
▼
Convert name stored in notification
│
▼
User opens notification panel
│
▼
Notification rendered using innerHTML
│
▼
Browser parses HTML
│
▼
Embedded JavaScript executes
यह भेद्यता अविश्वसनीय इनपुट को सादे पाठ के बजाय HTML के रूप में रेंडर करने के कारण उत्पन्न होती है।
Attacker
│
▼
Creates or modifies a malicious convert name
│
▼
Notification containing the convert name is generated
│
▼
Victim opens notification panel
│
▼
Notification dropdown inserts message using innerHTML
│
▼
Browser executes malicious JavaScript
│
▼
Actions performed within victim's authenticated session
मान लीजिए कि HTML युक्त विशेष रूप से तैयार किए गए नाम के साथ एक convert बनाया जाता है।
बाद में, किसी अन्य प्रमाणित उपयोगकर्ता को उस convert का संदर्भ देने वाला एक नोटिफिकेशन प्राप्त होता है। जब उपयोगकर्ता नोटिफिकेशन बेल पर क्लिक करता है, तो एप्लिकेशन innerHTML का उपयोग करके नोटिफिकेशन संदेश को पृष्ठ में डाल देता है।
convert नाम को पाठ के रूप में प्रदर्शित करने के बजाय, ब्राउज़र इसे HTML के रूप में व्याख्यायित करता है और एम्बेडेड JavaScript निष्पादित करता है, जिससे हमलावर पीड़ित के ब्राउज़र सत्र के भीतर कार्य करने में सक्षम हो जाता है।
एक वैध उपयोगकर्ता निम्न नाम वाला convert बनाता है:
Monthly Sales Report
एप्लिकेशन इसे डेटाबेस में संग्रहीत करता है।
इसके बजाय, एक हमलावर HTML युक्त नाम दर्ज करता है:
Quarterly Report <b>Important</b>
एप्लिकेशन इसे संग्रहीत करता है:
Quarterly Report <b>Important</b>
बाद में, किसी अन्य उपयोगकर्ता को निम्न जैसा नोटिफिकेशन प्राप्त होता है:
Convert "Quarterly Report <b>Important</b>" completed successfully.
यदि एप्लिकेशन यह करता है:
notification.innerHTML = response.message;
तो ब्राउज़र रेंडर करता है:
Convert Quarterly Report Important completed successfully.
क्योंकि को HTML के रूप में व्याख्यायित किया जाता है।
यदि एप्लिकेशन इसके बजाय निम्न का उपयोग करता है:
notification.textContent = response.message;
तो ब्राउज़र शाब्दिक पाठ प्रदर्शित करता है:
Convert "Quarterly Report <b>Important</b>" completed successfully.
कोई भी HTML व्याख्यायित नहीं होता।
सफल शोषण से हमलावर निम्न कार्य कर सकता है:
| मापदंड | स्कोर |
|---|---|
| CVSS v4.0 (CNA) | 6.3 (मध्यम) |
NVD ने अभी तक अपना स्वयं का CVSS मूल्यांकन निर्दिष्ट नहीं किया है।
नोट: विक्रेता ने सटीक भेद्य स्रोत कोड प्रकाशित नहीं किया है। निम्नलिखित भेद्य पैटर्न को प्रदर्शित करता है।
// User-controlled convert name
const message = response.notificationMessage;
// Unsafe rendering
notificationDropdown.innerHTML += `
<div class="notification">
${message}
</div>
`;
innerHTML नोटिफिकेशन संदेश को HTML के रूप में मानता है। यदि संदेश में किसी दुर्भावनापूर्ण convert नाम से उत्पन्न HTML या JavaScript है, तो ब्राउज़र इसे पार्स करके निष्पादित करता है।
const notification = document.createElement("div");
notification.className = "notification";
// Safe rendering
notification.textContent = response.notificationMessage;
notificationDropdown.appendChild(notification);
textContent का उपयोग यह सुनिश्चित करता है कि नोटिफिकेशन संदेश HTML के बजाय सादे पाठ के रूप में रेंडर हो। प्रकाशित सुधार में उल्लेख के अनुसार, समस्या को DOM विधियों के माध्यम से नोटिफिकेशन तत्वों का निर्माण करके और innerHTML के बजाय textContent के माध्यम से सामग्री निर्दिष्ट करके ठीक किया गया, जिससे एम्बेडेड स्क्रिप्ट का निष्पादन रुक गया।