
بصمة سلبية لإصدارات Citrix ADC / NetScaler ADC & Gateway واكتشاف الثغرات المعروفة — CVE-2023-3519، CitrixBleed 2/3، CVE-2026-8452، وCVE-2026-88771/88772 (KEV)
citrixInspector.py (سابقًا cve_2023_3519_inspector.py) هو ماسح ضوئي سلبي للثغرات مكتوب بلغة Python
مخصص لأجهزة Citrix ADC / Citrix Gateway / NetScaler ADC / NetScaler Gateway. يقوم بتحديد
إصدار البرنامج الثابت الدقيق للهدف دون مصادقة، ويُبلّغ عن كل ثغرة CVE معروفة يكون ذلك الإصدار
عرضة لها.
⚠️ إصدار تجريبي (Beta): الكشف عن ثغرات CVE الأحدث لعامي 2025/2026 (CitrixBleed 2/3، CVE-2026-8452، CVE-2026-88771/88772) لا يزال في مرحلة تجريبية. يعتمد على القدرة على تحديد إصدار البرنامج الثابت الدقيق عبر تقنيات GZIP-timestamp أو vhash؛ وعندما لا تنجح أي منهما على الهدف، يتراجع الماسح الضوئي إلى استدلال تقريبي أكثر بكثير يقتصر على CVE-2023-3519 فقط ولن يُشير إلى ثغرات CVE الأحدث على الإطلاق (انظر قسم الفحوصات المُنفَّذة أدناه). تعامل مع نتائج ثغرات CVE الأحدث على أنها للاستئناس فقط.

تم تشغيل المخرجات ضد بيئة اختبار محاكاة. اسم المضيف هو عنصر نائب فقط.
cve_2023_3519_inspector.py إلى citrixInspector.py ليعكس نطاقه الأوسع متعدد ثغرات CVE./vpn/js/rdx/core/lang/rdx_en.json.gz) كتقنية أساسية
وأكثر موثوقية لتحديد الإصدار دون مصادقة، نظرًا لأن تقنية تجزئة الموارد الثابتة القديمة v=<hash> "لم تعد موجودة دائمًا" في الإصدارات الحديثة.Last-Modified للصفحة) بمقارنة
دقيقة لعتبة الإصدار كلما كان الإصدار الدقيق معروفًا، مع التراجع إلى الاستدلال الأصلي
فقط عندما يتعذّر تحديد الإصدار.يتطلب هذا السكربت Python 3.6+ وحزم Python التالية:
لتثبيت الحزم المطلوبة، شغّل:
git clone https://github.com/securekomodo/citrixInspector.git
cd citrixInspector
pip install -r requirements.txt
python citrixInspector.py -u <target_url>
Author: Bryan Smith (@securekomodo)
------------------------
_________ .__ __ .__
\_ ___ \|__|/ |________|__|__ ___
/ \ \/| \ __\_ __ \ \ \/ /
\ \___| || | | | \/ |> <
\______ /__||__| |__| |__/__/\_ \
\/ \/
.___ __
| | ____ ____________ ____ _____/ |_ ___________
| |/ \ / ___/\____ \_/ __ \_/ ___\ __\/ _ \_ __ \
| | | \___ \ | |_> > ___/\ \___| | ( <_> ) | \/
|___|___| /____ >| __/ \___ >\___ >__| \____/|__|
\/ \/ |__| \/ \/
citrixInspector
------------------------
usage: citrixInspector.py [-h] (-u URL | -f FILE) [--ioc-check] [-l LOG]
Fingerprint and check Citrix ADC / NetScaler ADC & Gateway for known CVEs.
optional arguments:
-h, --help show this help message and exit
-u URL, --url URL The URL of the Citrix/NetScaler Gateway to check.
-f FILE, --file FILE A file containing a list of URLs to check.
--ioc-check Slower. Performs IOC (Indicator of Compromise) check.
-l LOG, --log LOG Log file to write the output.
يمكن لسكربت citrixInspector.py أن يقبل إما عنوان URL واحدًا أو ملفًا يحتوي على قائمة عناوين URL كمدخل. ثم يُجري سلسلة من الفحوصات لتحديد مدى قابلية بوابات Citrix/NetScaler المعطاة للثغرات:
# Check a single URL
python citrixInspector.py --url https://example.com
# Check multiple URLs from a file
python citrixInspector.py --file urls.txt
# Check multiple URLs from a file and check for IOCs
python citrixInspector.py --file urls.txt --ioc-check
لتحديد ملف سجل للمخرجات، استخدم خيار --log:
python citrixInspector.py --url https://example.com --log my_log.log
للمساعدة:
python citrixInspector.py --help
يُجري سكربت citrixInspector.py الفحوصات التالية على المواقع المستهدفة:
MTIME (RFC 1952)
الخاص بـ /vpn/js/rdx/core/lang/rdx_en.json.gz، والذي يُضبط وقت تجميع البرنامج الثابت ويحدد
الإصدار الدقيق بشكل فريد. هذه هي التقنية الموصى بها حاليًا من فريق Fox-IT Security
Research Team، نظرًا لأن تقنية vhash أدناه "لم تعد موجودة دائمًا" في الإصدارات الحديثة.v=<md5> محددة في عناوين URL للموارد الثابتة المضمّنة في محتوى HTML. هذا مبني على العمل الرائع
من Fox-IT (NCC Group) في عام 2022:
https://blog.fox-it.com/2022/12/28/cve-2022-27510-cve-2022-27518-measuring-citrix-adc-gateway-version-adoption-on-the-internet/كلما أمكن تحديد إصدار دقيق (عبر فحص GZIP-timestamp، أو فحص vhash، أو
pluginlist.xml)، يتحقق السكربت من ذلك الإصدار مقابل كل ثغرة CVE في الجدول أدناه ويُبلّغ عن كل
ما ينطبق ([CERTAIN]). وعندما يتعذّر تحديد إصدار دقيق، يتراجع إلى استدلالات
العنوان/الأيقونة/التعليق/الترويسة الأصلية ([FIRM] / [TENTATIVE] / [CITRIX DETECTED])، مقتصرة فقط على
CVE-2023-3519 كما كان من قبل.
| CVE | الوصف | تم الإصلاح في |
|---|---|---|
| CVE-2023-3519 | تنفيذ كود عن بُعد دون مصادقة (stack overflow) | 13.0-91.13 / 13.1-49.13 |
| CVE-2025-5349 / CVE-2025-5777 | "CitrixBleed 2" - الكشف عن محتوى الذاكرة | 14.1-43.56 / 13.1-58.32 |
| CVE-2025-6543 | تجاوز سعة الذاكرة (Gateway)، مُستغَلَّة في البرية | 14.1-47.46 / 13.1-59.19 |
| CVE-2025-7775 / CVE-2025-7776 / CVE-2025-8424 | "CitrixBleed 3" | 14.1-47.48 / 13.1-59.22 |
| CVE-2026-8452 | تجاوز سعة كومة الذاكرة (heap overflow) في SAML PrefixList قبل المصادقة (يتطلب إعداد SAML SP/IdP) | 14.1-72.61 / 13.1-63.18 |
| CVE-2026-88771 / CVE-2026-88772 | حقن أوامر قبل المصادقة / تجاوز سعة ذاكرة DTLS — مُستغَلَّة فعليًا، في CISA KEV | 14.1-73.37 / 13.1-64.23 |
جميع الفروع التي وصلت إلى نهاية العمر (End-Of-Life) قبل إصدار إصلاح (11.1، 12.1 غير FIPS/NDcPP، 13.0) يتم الإبلاغ عنها كعرضة لكل ثغرة CVE أعلاه. أما إصدارات FIPS/NDcPP (12.1-55.x، 13.1-37.x) فيتم التحقق منها مقابل إصدارات الإصلاح المنشورة بشكل منفصل الخاصة بها.
يتم تضمين فقط ثغرات CVE ذات عتبة إصدار موثوقة وموثّقة علنًا. العديد من ثغرات CVE الأخرى في نشرتي CTX697096 و CTX696604 (مثل CVE-2026-88773–88778) تتطلب فحص إعدادات مُصادَق عليه لتحديد قابلية التطبيق وهي خارج نطاق هذا الماسح الضوئي السلبي عن قصد.