
Уязвимость 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
-
AV:N (Вектор атаки: Сетевой) – Удалённая эксплуатация через интернет.
-
AC:L (Сложность атаки: Низкая) – Простая реализация без сложных условий.
-
PR:N (Привилегии: Нет) – Доступ к системе не требуется.
-
UI:N (Взаимодействие: Нет) – Участие пользователя не нужно.
-
S:U (Область: Неизменная) – Влияет только на уязвимый компонент.
-
C:H (Конфиденциальность: Высокое) – Полная утечка данных.
-
I:H (Целостность: Высокое) – Возможность полного изменения данных.
-
A:H (Доступность: Высокое) – Критическое нарушение работы системы.
Интерпретация: Критическая уязвимость (9.8) позволяет удалённо без прав и участия пользователя нарушить конфиденциальность, целостность и доступность системы. Максимальный риск обусловлен сетевым вектором, низкой сложностью эксплуатации и полным контролем над уязвимым компонентом.
Условия эксплуатации
-
Сетевой доступ:
-
Атакующий должен находиться в той же локальной сети, что и целевая система, или иметь возможность отправлять IPv6-трафик через маршрутизаторы (в зависимости от конфигурации сети).
-
IPv6 должен быть активирован на целевом устройстве (по умолчанию включен в современных версиях Windows).
-
-
Целевые системы:
-
Все версии Windows, начиная с Windows Server 2008 и заканчивая Windows 11 24H2.
-
-
Требуемые привилегии:
-
Эксплуатация возможна без аутентификации (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.
Защита и рекомендации
-
Обновление ОС: Установите патчи от Microsoft.
-
Отключение IPv6:
# PowerShell Disable-NetAdapterBinding -Name "Ethernet" -ComponentID ms_tcpip6
-
Фильтрация пакетов:
-
Блокируйте входящие IPv6-пакеты с фрагментами на межсетевых экранах.
-
Пример правила для
iptables
:ip6tables -A INPUT -m frag --fragmore -j DROP
-
-
Мониторинг сети: Ищите аномальную активность, связанную с фрагментированными IPv6-пакетами.
