
مدقق Python للقراءة فقط يتحقق من سلوك تجاوز المصادقة CVE-2026-20079 في Cisco FMC من خلال مقارنة استجابات الجلسة غير المصادق عليها واستجابات csm_processes.
أداة تحقق صغيرة ومحدودة بشكل متعمد لثغرة CVE-2026-20079، وهي ثغرة تجاوز المصادقة في Cisco Secure Firewall Management Center (FMC).
هذا المستودع أداة فحص، وليس استغلالاً.
لا يحتوي على أجزاء ترقية الجلسة، أو كتابة الملفات، أو تنفيذ الأوامر، أو تنفيذ التعليمات عن بُعد (RCE) من سلسلة الثغرة.
ترسل الأداة طلبين عبر HTTPS إلى /help/about.cgi:
CGISESSID=csm_processes.لا يتم وسم النتيجة بـ CONFIRMED إلا عندما يقوم الرد الثاني بما يلي:
csm_processes.يوفر هذا طريقة متحفظة للقراءة فقط للتحقق من سلوك تجاوز المصادقة الذي أعدنا إنتاجه في مختبر.
النتيجة السلبية لا تُثبت أن الجهاز مُرقَّع.
يتطلب التجاوز الموثَّق وجود جلسة csm_processes المُنشأة عند الإقلاع
باقية في قاعدة بيانات الجلسات الخاصة بالجهاز. يمكن لنشاط لوحة المعلومات/الودجات
المُصادَق عليه، ونشاط واجهة المستخدم المُدار سحابياً، والتنظيف الناتج عن المصادقة
أن يزيلها. وبمجرد إزالتها، لا يمكن لهذا التجاوز استخدام تلك الجلسة؛ وقد يُعيد
إقلاع لاحق إنشاءها على جهاز متأثر. هذا لا يُثبت أن كل تسجيل دخول ناجح
يُعطّل التجاوز فوراً. راجع
تحليل المتطلبات المسبقة من VulnCheck.
الحالة المفضلة للتحقق المختبري المُتحكَّم به: اختبار جهاز أُعيد تشغيله حديثاً بمجرد توفر واجهة الويب الخاصة به، قبل أن يُصادق أي مستخدم أو يتفاعل مع واجهة الويب. تتبع هذه التوصية المتطلبات المسبقة المنشورة للجلسة: فهي تزيد من احتمال بقاء الجلسة المُنشأة عند الإقلاع، لكنها لا تضمن نتيجة إيجابية.
ميّز بين حالة الاختبار والنتيجة: الجهاز الذي أُعيد تشغيله حديثاً يوفر فرصة أفضل لملاحظة هذا السلوك؛ أما النتيجة السلبية بعد تسجيل الدخول أو تنظيف الجلسة فلا تُثبت أن الجهاز مُرقَّع. حتى النتيجة السلبية مباشرة بعد إعادة التشغيل ليست دليلاً على حالة الترقيع.
على سبيل المثال، يُصادق مستخدم وتُزيل نشاطات واجهة المستخدم الجلسة. إذا تلقّت
الأداة بعد ذلك إعادة توجيه أو HTTP 401/403، فإنها تُبلّغ بـ NOT_CONFIRMED:
سلبية بالنسبة للسلوك المُلاحَظ، وربما سلبية كاذبة بالنسبة للتعرّض للثغرة.
المصادقة ليست ترقيعاً.
لا تستطيع الأداة ملاحظة سجل تسجيل الدخول أو قاعدة بيانات الجلسات. إنها تُصنّف
رد HTTP، لذا فإن المصادقة السابقة وحدها ليست سبباً لفرض نتيجة سلبية. تبقى الردود
الأخرى غير المتوقعة INCONCLUSIVE، وتبقى إخفاقات الطلب ERROR.
استخدم إرشادات Cisco وSoftware Checker لتحديد التعرّض للترقيع.
لا تحتوي النسخة العامة عمداً على أي وظائف لـ:
لا يُقبل سوى عناوين IP الحرفية التي يوفرها المشغّل.
تتطلب عناوين IP العامة علامة --allow-public الصريحة.
requestsالتثبيت:
python3 -m pip install -r requirements.txt
عنوان IP خاص/مختبري:
python3 CVE-2026-20079-checker.py --host 192.168.1.100
عنوان IP عام مصرّح لك بتقييمه:
python3 CVE-2026-20079-checker.py \
--host 203.0.113.10 \
--allow-public
أنشئ targets.txt:
# One literal IP address per line
192.168.1.100
192.168.1.101
شغّل:
python3 CVE-2026-20079-checker.py \
--targets targets.txt \
--json results.json \
--csv results.csv
لقائمة مصرّح بها تحتوي على عناوين IP عامة:
python3 CVE-2026-20079-checker.py \
--targets targets.txt \
--allow-public \
--workers 4 \
--json results.json
لا تقبل الأداة عمداً نطاقات CIDR.
تُظهر فحوصات المضيف الواحد كتلة تفصيلية. مثال على المخرجات باستخدام جهاز
المختبر الموثَّق (FMC 7.4.2 Build 172) والهدف المثال 192.168.1.100:
[*] CVE-2026-20079 Read-Only Validation
[*] Target : 192.168.1.100
[*] Endpoint : /help/about.cgi
[*] Mode : Read-only / no exploitation
[+] Appliance : Cisco Secure Firewall Management Center for KVM
[+] Version : 7.4.2
[+] Build : 172
[+] Server : Mojolicious (Perl)
[*] Baseline HTTP : 302
[*] Session HTTP : 200
[*] Session Context : csm_processes
[*] Comparison : baseline=302 -> probe=200
[CONFIRMED] CVE-2026-20079 authentication-bypass behavior observed
[*] Reason : Server returned FMC content with HTTP 200 while explicitly identifying the csm_processes session context.
[*] Summary:
confirmed=1
not_confirmed=0
inconclusive=0
errors=0
[!] Note : NOT_CONFIRMED does not prove the appliance is patched
تُظهر الفحوصات التي تستخدم --targets FILE جدولاً مُدمجاً بأعمدة TARGET،
وRESULT، وVERSION، وBASE، وPROBE، يتبعه ملخص. تظهر التفاصيل المفقودة
كـ not observed في العرض التفصيلي أو - في الجدول. تسميات المنتج وسياق
الجلسة معلوماتية؛ فهي لا تُغيّر معايير الكشف. يحتفظ JSON/CSV بجميع الحقول
الموجودة ويضيف product وsession_context. لا النتيجة السلبية ولا البيانات
الوصفية المفقودة تُثبت حالة الترقيع.
رموز الخروج:
0 — لا نتيجة مؤكدة1 — فشلت جميع الفحوصات بأخطاء في الطلب2 — نتيجة مؤكدة واحدة على الأقل64 — تم توفير هدف عام بدون --allow-publicرمز الخروج 0 يعني عدم وجود نتيجة مؤكدة، بما في ذلك التشغيلات ذات النتائج
غير الحاسمة أو مزيج من أخطاء الطلب والنتائج غير المؤكدة. وهو ليس حكماً على
حالة الترقيع. وبالمثل، vulnerable_behavior: false في التصدير يعني أن معايير
التأكيد لم تتحقق.
أثناء التطوير، أُعيد إنتاج سلوك القراءة فقط مقابل:
Cisco Secure Firewall Management Center for KVM
7.4.2 Build 172
الغرض من توثيق تلك الملاحظة هو قابلية إعادة الإنتاج؛ وهي ليست بديلاً عن معلومات Cisco الموثوقة حول الإصدارات المتأثرة/المُصلَحة.
راجع docs/LAB-NOTES.md.
تُصنّف Cisco ثغرة CVE-2026-20079 بـ حرجة (CVSS 10.0) وتذكر أن الاستغلال الناجح قد يؤدي إلى وصول بصلاحيات الجذر. أصدرت Cisco إصلاحات/إصلاحات عاجلة وتُفيد بوجود استغلال نشط اعتباراً من أغسطس 2026.
اتبع إرشادات Cisco الحالية وSoftware Checker بدلاً من الاعتماد على هذا الماسح وحده.
شغّل هذه الأداة فقط ضد الأنظمة التي تملكها أو لديك تصريح صريح بتقييمها.
قد يُفعّل اختبار أمن الشبكات ضوابط المراقبة، أو حدود المعدل، أو عمليات الاستجابة للحوادث، أو أنظمة الإبلاغ عن إساءة الاستخدام لدى مزودي الخدمة حتى عندما تكون الطلبات للقراءة فقط.
MIT. راجع LICENSE.
| النتيجة | المعنى |
|---|
CONFIRMED | الرد المُلاحَظ يطابق مؤشر التجاوز للقراءة فقط الذي تستخدمه هذه الأداة. |
NOT_CONFIRMED | أعاد الفحص إعادة توجيه أو HTTP 401/403. لم يُلاحَظ التجاوز؛ قد تكون الجلسة المطلوبة غائبة. هذا لا يعادل "مُرقَّع". |
INCONCLUSIVE | لوحظ سلوك شبيه بـ FMC أو غير معتاد، لكن الأداة لم تستطع تأكيد هوية الجلسة. |
ERROR | منع إخفاق في الشبكة/TLS/الطلب إصدار حكم. |