xmldom: असुरक्षित CDATA क्रमबद्धता के माध्यम से XML इंजेक्शन (XML injection) हमलावर-नियंत्रित मार्कअप प्रविष्टि की अनुमति देता है
प्लेटफ़ॉर्म
nodejs
कॉम्पोनेन्ट
xmldom
## सारांश `@xmldom/xmldom` हमलावर-नियंत्रित स्ट्रिंग्स को `CDATASection` नोड में सम्मिलित करने की अनुमति देता है जिसमें CDATA टर्मिनेटर `]]>` होता है। क्रमबद्धता के दौरान, `XMLSerializer` टर्मिनेटर को अस्वीकार किए बिना या सुरक्षित रूप से विभाजित किए बिना CDATA सामग्री को अक्षरशः उत्सर्जित करता है। परिणामस्वरूप, डेटा जिसे केवल टेक्स्ट-ओनली रहना था, क्रमबद्ध आउटपुट में **सक्रिय XML मार्कअप** बन गया, जिससे XML संरचना इंजेक्शन (XML structure injection) और डाउनस्ट्रीम बिजनेस-लॉजिक हेरफेर सक्षम हो गया। अनुक्रम `]]>` को CDATA सामग्री के अंदर अनुमति नहीं है और क्रमबद्धता के दौरान इसे अस्वीकार या सुरक्षित रूप से संभाला जाना चाहिए। ([MDN Web Docs](https://developer.mozilla.org/)) ### आक्रमण सतह `Document.createCDATASection(data)` सबसे सीधा प्रवेश बिंदु है, लेकिन यह एकमात्र नहीं है। WHATWG DOM स्पेक जानबूझकर म्यूटेशन विधियों में `]]>` को मान्य नहीं करता है - केवल `createCDATASection` में वह सुरक्षा है। इसलिए निम्नलिखित पथ `]]>` को CDATASection नोड में प्रवेश करने और क्रमबद्धक तक पहुंचने की अनुमति देते हैं: - `CharacterData.appendData()` - `CharacterData.replaceData()` - `CharacterData.insertData()` - `.data` को सीधा असाइनमेंट - `.textContent` को सीधा असाइनमेंट (ध्यान दें: `.nodeValue` को असाइन करने से इस इम्प्लीमेंटेशन में `.data` अपडेट **नहीं** होता है)
कैसे ठीक करें
कोई आधिकारिक पैच उपलब्ध नहीं है। वैकल्पिक समाधान खोजें या अपडेट की निगरानी करें।
अपनी निर्भरताओं की स्वचालित निगरानी करें
जब नई कमज़ोरियाँ आपके प्रोजेक्ट को प्रभावित करें तो अलर्ट पाएं।
मुफ़्त शुरू करें