
Пассивно определяет сборки Citrix ADC / NetScaler ADC & Gateway и обнаруживает известные CVE — 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, которым эта
сборка подвержена.
⚠️ Бета: Обнаружение новых CVE 2025/2026 годов (CitrixBleed 2/3, CVE-2026-8452, CVE-2026-88771/88772) находится в бета-версии. Оно relies on being able to fingerprint the exact firmware build via the GZIP-timestamp or vhash techniques; when neither works on a target, the scanner falls back to a much coarser, CVE-2023-3519-only heuristic and will not flag the newer CVEs at all (see the Checks Performed section below). Treat results for the newer CVEs as informational only.

Вывод был получен на симулированном тестовом стенде. Имя хоста — только заполнитель.
cve_2023_3519_inspector.py в citrixInspector.py, чтобы отразить его более широкий, многопользовательский охват CVE./vpn/js/rdx/core/lang/rdx_en.json.gz) в качестве основного,
наиболее надёжного метода идентификации сборки без аутентификации, поскольку устаревший хеш статического
ресурса v=<hash> "not always present anymore" на современных сборках.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 Gateway:
# 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 ниже "not always present anymore" на современных сборках.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-метки времени, проверку vhash или
pluginlist.xml), скрипт проверяет эту сборку на каждую CVE в таблице ниже и сообщает обо всех
подходящих ([CERTAIN]). Когда точную сборку идентифицировать не удаётся, он откатывается к исходным
эвристикам по заголовку/иконке/комментарию/заголовку ([FIRM] / [TENTATIVE] / [CITRIX DETECTED]), ограниченным только
CVE-2023-3519, как и раньше.
| CVE | Описание | Исправлено в |
|---|---|---|
| CVE-2023-3519 | Неаутентифицированный RCE (переполнение стека) | 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 | Pre-auth SAML PrefixList heap overflow (требуется конфигурация SAML SP/IdP) | 14.1-72.61 / 13.1-63.18 |
| CVE-2026-88771 / CVE-2026-88772 | Pre-auth command injection / DTLS memory overflow — активно эксплуатируется, в CISA KEV | 14.1-73.37 / 13.1-64.23 |