Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-9809 — CVE-2026-9809 is a Stored Cross-Site Scripting (Stored XSS) vulnerability affecting Mautic 7 (versions 7.0.0 through 7.1.1). | Kitploit
أدوات/GitHubGitHub/aj2108/cve-2026-9809
Vulnerability AnalysisWeb SecurityLearning & Education
GitHubaj2108/cve-2026-9809

CVE-2026-9809

CVE-2026-9809 is a Stored Cross-Site Scripting (Stored XSS) vulnerability affecting Mautic 7 (versions 7.0.0 through 7.1.1).

عرض المستودع
منذ 19 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2026-9809

CVE-2026-9809 هي ثغرة من نوع البرمجة النصية عبر المواقع المخزّنة (Stored XSS) تؤثر على Mautic 7 (الإصدارات من 7.0.0 إلى 7.1.1). يكمن الخلل في مكوّن المشاريع، حيث تُعرض أسماء المشاريع كوسوم ونوافذ منبثقة عند التمرير في الصفحات الإدارية (مثل الحملات والبريد الإلكتروني والنماذج) دون تعقيم مناسب للمخرجات. يمكن لمستخدم موثّق يمتلك صلاحية إنشاء المشاريع أو تعديلها تخزين HTML/JavaScript خبيث في اسم مشروع. عندما يعرض مسؤول لاحقًا كيانًا مرتبطًا بذلك المشروع ويُمرر المؤشر فوق وسمه، يَنفَّذ النص البرمجي الخبيث في متصفح المسؤول.

البرمجيات المتأثرة

الخاصيةالقيمة
المنتجMautic
الإصدارات المتأثرة7.0.0 – 7.1.1
الإصدار المُصحَّح7.1.2
المكوّن المتأثرالمشاريع (الوسوم والنوافذ المنبثقة)

نوع الثغرة

الفئة: البرمجة النصية عبر المواقع المخزّنة (Stored XSS) CWE-79: تحييد غير صحيح للمدخلات أثناء توليد صفحة الويب ('البرمجة النصية عبر المواقع')

السبب الجذري

يخزّن التطبيق أسماء المشاريع التي يقدمها المستخدمون الموثّقون. لاحقًا، عندما تُعرض وسوم المشاريع ومحتوى النوافذ المنبثقة في الصفحات الإدارية، تُدخل القيمة المخزنة في HTML دون ترميز مناسب للمخرجات أو تعقيم.

من الناحية المفاهيمية:

root@kitploit:~
User creates project
        │
        ▼
Project name stored in database
        │
        ▼
Administrator opens Campaign / Email / Form
        │
        ▼
Project tag & popover rendered
        │
        ▼
Project name inserted into HTML without sanitization
        │
        ▼
Browser executes embedded JavaScript

بدلاً من معالجة اسم المشروع كنص عادي، يفسره المتصفح على أنه HTML، مما يسمح بتنفيذ JavaScript المضمّن.

مسار الهجوم

root@kitploit:~
Attacker
    │
    ▼
Creates a project with a malicious project name
    │
    ▼
Payload stored in database
    │
    ▼
Administrator views Campaign / Email / Form
    │
    ▼
Administrator hovers over the project tag
    │
    ▼
Popover renders unsanitized project name
    │
    ▼
Browser executes JavaScript
    │
    ▼
Actions performed with administrator's privileges

سيناريو الهجوم

لنفترض أن مستخدمًا موثّقًا ينشئ مشروعًا يحتوي اسمه على HTML بدلاً من النص العادي.

يُحفظ المشروع بنجاح لأن التطبيق لا يعقّم اسم المشروع عند الإدخال.

لاحقًا، يفتح مسؤول حملة مرتبطة بذلك المشروع. عندما يُمرر المسؤول المؤشر فوق وسم المشروع، يُنشئ التطبيق نافذة منبثقة باستخدام اسم المشروع المخزّن. وبما أن المحتوى يُدخل في الصفحة دون ترميز مناسب للمخرجات، يفسره المتصفح على أنه HTML وليس نصًا عاديًا، مما يؤدي إلى تنفيذ JavaScript المضمّن في جلسة المسؤول.

الأثر

قد يسمح الاستغلال الناجح للمهاجم بما يلي:

  • تنفيذ JavaScript عشوائي في متصفح المسؤول.
  • تنفيذ إجراءات باستخدام جلسة المسؤول.
  • تعديل إعدادات التطبيق.
  • الوصول إلى بيانات إدارية حساسة.
  • تسريب معلومات يمكن للمسؤول الوصول إليها.

تؤثر الثغرة بشكل أساسي على السرية والسلامة.

الخطورة

المقياسالدرجة
CVSS v3.1 (CNA)7.6 (عالية)

لم تنشر NVD بعد تقييمها الخاص لـ CVSS؛ النتيجة الحالية مقدمة من CNA الخاص بـ Mautic.

كود ثغرة مفاهيمي

ملاحظة: لم ينشر البائع الكود المصدري المصاب الدقيق. يوضح ما يلي نمط الثغرة.

root@kitploit:~
// Project name retrieved from the server
const projectName = response.project.name;

// Unsafe: inserts user-controlled HTML
popover.innerHTML = `
    <span class="project-tag">
        ${projectName}
    </span>
`;

لماذا يُعد هذا الكود ثغرة

يتسبب innerHTML في جعل المتصفح يحلل اسم المشروع المخزّن باعتباره HTML. إذا كان اسم المشروع يحتوي على عناصر HTML مع معالجات أحداث JavaScript، فسينفذها المتصفح عند عرض النافذة المنبثقة.

الكود المُصحَّح (مفاهيمي)

root@kitploit:~
const tag = document.createElement("span");
tag.className = "project-tag";

// Safe: treat input as plain text
tag.textContent = response.project.name;

popover.replaceChildren(tag);

لماذا يُجدي هذا الإصلاح

يضمن استخدام textContent معالجة اسم المشروع كنص حرفي بدلاً من HTML. تُعرض أي أحرف خاصة بـ HTML بدلاً من أن يفسرها المتصفح، مما يمنع تنفيذ النصوص البرمجية المضمّنة. وعندما يكون عرض HTML مطلوبًا، يجب على المطورين تعقيم المحتوى غير الموثوق باستخدام أداة تعقيم HTML جيدة الصيانة قبل إدراجه.

تنزيل الأداة