PT-2026-49557
CVE-2026-49458
·
تاريخ النشر
2026-06-15
·
تاريخ التحديث
2026-09-25
الوصف من
CVSS 3.1
6.1
متوسطةالمقاييسAV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
اسم البرنامج المعرض للخطر والإصدارات المتأثرة
إصدارات DOMPurify السابقة للإصدار 3.4.6
الوصف
يفشل DOMPurify في تطهير عقد DOM بشكل صحيح من المجالات الخارجية ذات المنشأ نفسه (مثل تلك الموجودة في iframe أو نافذة منبثقة أو علامة تبويب مفتوحة) عند استخدام الأسلوب
DOMPurify.sanitize(node, { IN PLACE: true }). تحدث هذه المشكلة لأن المكتبة تستخدم فحوصات instanceof المرتبطة بالمجال مقابل منشئات المجال الأصلي. ونظرًا لأن منشئات الكائنات فريدة لكل مجال، فإن عمليات الفحص هذه تُرجع القيمة false لعقد المجالات الخارجية، مما يتسبب في تخطي أداة التنقية لفروع الأمان الحرجة.تشمل التفاصيل الفنية ما يلي:
-
تجاوز Clobbering: تفشل الدالة
isClobbered()في التعرف على عناصر<form>في المجالات الخارجية، مما يسمح ببقاء سمات يتحكم فيها المهاجم مثلonmouseoverأوonclick. -
تجاوز القوالب: تفشل الدالة
sanitizeShadowDOM()والمكرر الرئيسي في التعرف على كائناتDocumentFragmentفي الخاصية.contentلعناصر<template>التابعة لمجال غريب، مما يترك علامات قابلة للتنفيذ داخل القالب. -
تجاوز Shadow DOM: تفشل الدالة
sanitizeAttachedShadowRoots()في التعرف على كائناتShadowRootالتابعة لمجال خارجي، مما يؤدي إلى تخطي عملية التنقية لشجرة Shadow الفرعية بأكملها.
قد يؤدي هذا إلى حدوث هجمات البرمجة النصية عبر المواقع (XSS) عندما يقوم التطبيق لاحقًا بإدراج العقدة التي تمت معالجتها أو تنشيطها في DOM الفعلي.
التوصيات
قم بتحديث DOMPurify إلى الإصدار 3.4.6.
كحل مؤقت، تجنب استخدام الخيار
IN PLACE: true عند معالجة عقد DOM التي تم إنشاؤها في وجدت خطأً في الوصف؟ لديك ما تضيفه؟ لا تتردد في مراسلتنا 👾