Уязвимость TCP/IP в Microsoft Windows
Уязвимость TCP/IP в Microsoft Windows
Категория: Программы Теги: Уязвимости Опубликовано: 15 мая 2025

Уязвимость BDU:2024-06242 (CVE-2024-38063) TCP/IP в Microsoft Windows

Уязвимость BDU:2024-06242 (CVE-2024-38063) представляет собой критическую ошибку в обработке IPv6-пакетов в стеке TCP/IP Windows. Она связана с целочисленным переполнением при работе с фрагментированными IPv6-пакетами. При обработке некорректно сформированных фрагментов (например, с неверными смещениями или размерами) возникает переполнение буфера в ядре ОС, что позволяет удаленно выполнить произвольный код (RCE).

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

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

  1. AV:N (Вектор атаки: Сетевой) – Удалённая эксплуатация через интернет.

  2. AC:L (Сложность атаки: Низкая) – Простая реализация без сложных условий.

  3. PR:N (Привилегии: Нет) – Доступ к системе не требуется.

  4. UI:N (Взаимодействие: Нет) – Участие пользователя не нужно.

  5. S:U (Область: Неизменная) – Влияет только на уязвимый компонент.

  6. C:H (Конфиденциальность: Высокое) – Полная утечка данных.

  7. I:H (Целостность: Высокое) – Возможность полного изменения данных.

  8. A:H (Доступность: Высокое) – Критическое нарушение работы системы.

Интерпретация: Критическая уязвимость (9.8) позволяет удалённо без прав и участия пользователя нарушить конфиденциальность, целостность и доступность системы. Максимальный риск обусловлен сетевым вектором, низкой сложностью эксплуатации и полным контролем над уязвимым компонентом.

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

  1. Сетевой доступ:

    • Атакующий должен находиться в той же локальной сети, что и целевая система, или иметь возможность отправлять IPv6-трафик через маршрутизаторы (в зависимости от конфигурации сети).

    • IPv6 должен быть активирован на целевом устройстве (по умолчанию включен в современных версиях Windows).

  2. Целевые системы:

    • Все версии Windows, начиная с Windows Server 2008 и заканчивая Windows 11 24H2.

  3. Требуемые привилегии:

    • Эксплуатация возможна без аутентификации (CVSS: AV:N/AC:L/PR:N).

Список уязвимых ОС

  • Microsoft Windows Server 2008 SP2 32-bit
  • Microsoft Windows Server 2008 SP2 64-bit
  • Microsoft Windows Server 2012
  • Microsoft Windows Server 2012 R2
  • Microsoft Windows 10 64-bit
  • Microsoft Windows 10 32-bit
  • Microsoft Windows 10 1607 64-bit
  • Microsoft Windows 10 1607 32-bit
  • Microsoft Windows Server 2008 R2 SP1
  • Microsoft Windows Server 2016
  • Microsoft Windows Server 2008 SP2 Server Core installation 64-bit
  • Microsoft Windows Server 2008 SP2 Server Core installation 32-bit
  • Microsoft Windows Server 2012 R2 Server Core installation
  • Microsoft Windows Server 2016 Server Core installation
  • Microsoft Windows Server 2012 Server Core installation
  • Microsoft Windows 10 1809 64-bit
  • Microsoft Windows 10 1809 32-bit
  • Microsoft Windows Server 2019
  • Microsoft Windows Server 2019 Server Core installation
  • Microsoft Windows 10 1809 ARM64
  • Microsoft Windows Server 2008 R2 SP1 Server Core installation
  • Microsoft Windows Server 2022
  • Microsoft Windows Server 2022 Server Core installation
  • Microsoft Windows 10 21H2 64-bit
  • Microsoft Windows 10 21H2 32-bit
  • Microsoft Windows 10 21H2 ARM64
  • Microsoft Windows 11 22H2 64-bit
  • Microsoft Windows 11 22H2 ARM64
  • Microsoft Windows 10 22H2 64-bit
  • Microsoft Windows 10 22H2 ARM64
  • Microsoft Windows 10 22H2 32-bit
  • Microsoft Windows 11 21H2 64-bit
  • Microsoft Windows 11 21H2 ARM64
  • Microsoft Windows 11 23H2 64-bit
  • Microsoft Windows 11 23H2 ARM64
  • Microsoft Windows Server 2022 23H2 Edition Server Core installation
  • Microsoft Windows 11 24H2 64-bit
  • Microsoft Windows 11 24H2 ARM64

Анализ общедоступных эксплоитов

1. CVE-2024-38063-poc.py
Этот скрипт для эксплуатации уязвимости BDU:2024-06242 (CVE-2024-38063) генерирует три типа пакетов, нарушающих логику обработки фрагментов:

# Формирование пакетов с опциями и фрагментами
first = IPv6(fl=1, hlim=64+i, dst=ip_addr) / IPv6ExtHdrDestOpt(options=[PadN(otype=0x81, optdata='a'*3)])
second = IPv6(...) / IPv6ExtHdrFragment(id=frag_id, m=1, offset=0) / 'aaaaaaaa'
third = IPv6(...) / IPv6ExtHdrFragment(id=frag_id, m=0, offset=1)

Механизм атаки:

  • Первый пакет содержит опцию PadN с некорректным типом (0x81), что может вызвать ошибку парсинга.

  • Второй и третий пакеты формируют фрагменты с одинаковым id, но разными offset и флагом M (More Fragments). Смещение offset=1 в третьем пакете указывает на недопустимое выравнивание (согласно RFC 8200, смещение должно быть кратно 8). Это провоцирует целочисленное переполнение при расчете размера буфера.

2. ai-fuzzer-cve-2024-38063-0-day.py
Этот инструмент использует AI для генерации нагрузок и автоматического поиска уязвимых хостов:

# AI-генерация смещений и длин фрагментов
def ai_rand_off(): return random.randint(0, 0x1FFF)  
def ai_rand_len(): return random.randint(8, 2000)  

# Формирование фрагментов с "мутированными" данными
hdr1 = bytes([44,0,(off_flag>>8)&0xFF, off_flag&0xFF]) + frag_id.to_bytes(4,'big')  
pkt1 = ip6.copy(); pkt1.nh=44; pkt1/=Raw(hdr1+load1)  

Особенности:

  • AI-фаззинг: Модель GPT-2 используется для генерации случайных payload-ов, увеличивая вероятность триггеринга уязвимости.

  • Обнаружение хостов: Скрипт сканирует сеть через ICMPv6 и ping, идентифицируя активные IPv6-адреса.

  • Стелс-режим: Задержки между пакетами (time.sleep(random.uniform(0.4,1.2))) позволяют избежать детектирования IDS.


Защита и рекомендации

  1. Обновление ОС: Установите патчи от Microsoft.

  2. Отключение IPv6:

    # PowerShell
    Disable-NetAdapterBinding -Name "Ethernet" -ComponentID ms_tcpip6
  3. Фильтрация пакетов:

    • Блокируйте входящие IPv6-пакеты с фрагментами на межсетевых экранах.

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

      ip6tables -A INPUT -m frag --fragmore -j DROP
  4. Мониторинг сети: Ищите аномальную активность, связанную с фрагментированными IPv6-пакетами.

Алексей Черемных Алексей Черемных
73