Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
DNS-Mayhem-CVE-2026-41096-Deep-Dive — Глубокий технический анализ CVE‑2026‑41096, критического переполнения кучи в Windows DNSAPI.dll, позволяющего удаленное выполнение кода через специально сформированные DNS‑ответы. Включает векторы атак, информацию о патчах и рекомендации по защите для команд безопасности. | Kitploit
Инструменты/GitHubGitHub/mrk336/dns-mayhem-cve-2026-41096-deep-dive
Анализ уязвимостейЭксплуатацияРазведка угрозСтатьи и ИсследованияОбучение и ОбразованиеРеагирование на ИнцидентыАнализ DNS
GitHubmrk336/dns-mayhem-cve-2026-41096-deep-dive

DNS-Mayhem-CVE-2026-41096-Deep-Dive

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Глубокий технический анализ CVE‑2026‑41096, критического переполнения кучи в Windows DNSAPI.dll, позволяющего удаленное выполнение кода через специально сформированные DNS‑ответы. Включает векторы атак, информацию о патчах и рекомендации по защите для команд безопасности.

Репозиторий
333 месяцев назадЕщё не проверено

DNS-Mayhem-CVE-2026-41096-Deep-Dive

Углубленный технический анализ CVE‑2026‑41096, критического переполнения кучи в Windows DNSAPI.dll, позволяющего удаленное выполнение кода через поддельные DNS-ответы. Включает векторы атак, анализ патча и рекомендации по защите для команд безопасности.

Обзор

CVE‑2026‑41096 — это переполнение буфера в куче в DNSAPI.dll, компоненте Windows, отвечающем за разбор каждого DNS-ответа, получаемого машиной. Поскольку DNS-запросы происходят постоянно и незаметно в фоновом режиме, эта уязвимость превращает обычную сетевую операцию в надежный вектор удаленного выполнения кода.

Простыми словами: Один поддельный DNS-ответ может скомпрометировать рабочую станцию или сервер Windows без каких-либо действий со стороны пользователя.

Что такое уязвимость на самом деле

Windows хранит разобранные DNS-ответы в структурах, выделяемых в куче. Ошибка появляется в функции, которая вычисляет, сколько памяти необходимо для каждой записи ответа. Когда DNS-ответ содержит запись A или AAAA, за которой следуют дополнительные данные (CNAME/NS и т.д.), парсер неверно вычисляет размер буфера.

Результат:

Windows записывает несколько байт за пределами выделенного блока, повреждая следующую структуру кучи, которая содержит указатель на функцию, используемый позже в процедуре разбора.

Как только этот указатель перезаписан, атакующий получает контроль над потоком выполнения.

Почему это важно Без взаимодействия с пользователем: Windows постоянно выполняет DNS-запросы.

Без аутентификации: DNS по своей природе основан на доверии.

Универсальное воздействие: каждая машина Windows 11 / Server 2022 / Server 2025 использует DNSAPI.dll.

Идеально для горизонтального перемещения: один скомпрометированный хост может быстро перемещаться по сети.

Как происходит переполнение DNS-пакет следует стандартной структуре RFC 1035:

root@kitploit:~
/*********************************************************************
 *  Simple CVE-2026-41096 DNS exploit skeleton (C)
 *  -------------------------------------------------------------
 *  Author:   Mark Mallia
 *  Date:     May 15, 2026
 *
 *  What it does:
 *    - Builds a crafted DNS answer that overflows the Windows
 *      DNSAPI.dll buffer during parsing.
 *    - Sets the function pointer of dnsapi_parse_answer() to 
 *      point at our shellcode payload (payload starts at offset
 *      0x0008 in the packet).
 *********************************************************************/

#include <winsock2.h>
#include <windows.h>

#pragma pack(push,1)
typedef struct {
   BYTE  name[255];
} DNS_RESPONSE;
#pragma pack(pop)

typedef struct {
   DWORD  dwCallbackPtr;          /* attacker‑controlled code ptr */
   DWORD  dwDataSize;              /* size of the shellcode payload */
} DNS_API_DATA;

void __stdcall dnsapi_parse_answer(DNSAPI *p) { /* … */ }

#pragma pack(pop)

void __declspec(naked) exploit_dns_response(void)
{
    /* 1. Build the A record (payload) */
    DNS_RESPONSE *ans = malloc(sizeof(DNS_RESPONSE));
    memcpy(ans, "\xC0\x00", ...);            // the article explains overflow trigger

    /* 2. Compute size of the following AAAA chunk */
    DWORD dwSize = 4;                            // buffer‑size miscalc
    DWORD dwPayload = 0x100 + dwSize;           // fix’s correction: “Corrects memory boundary miscalculation”

    /* 3. Build final packet */
    DWORD totalLen = sizeof(DNSAPI) + sizeof(DNS_API_DATA);
    DNS_API_DATA *dnsApiData = malloc(totalLen);

    /* 4. Set callback pointer */
    dnsApiData->dwCallbackPtr = (DWORD)&exploited_code;

    /* 5. Send to the target Windows host */
    // ... code omitted for brevity …
}

Это классическое повреждение кучи, ведущее к удаленному выполнению кода.

Реальные сценарии эксплуатации

Злоумышленникам не нужно напрямую взламывать цель — им достаточно влиять на DNS-трафик. Это может произойти несколькими реалистичными способами:

Скомпрометированный маршрутизатор Вредоносный провайдер, взломанный маршрутизатор или измененная прошивка могут внедрять поддельные DNS-ответы.

Несанкционированный внутренний DNS-сервер Внутри корпоративной сети злоумышленник может запустить DNS-пересыльщик, возвращающий вредоносные ответы.

Отравление резолвера Манипуляция публичными резолверами (Google, Cloudflare и т.д.) для возврата поддельного ответа.

Вредоносный публичный Wi‑Fi Поддельная точка доступа в кафе или аэропорту может перехватывать и изменять DNS-трафик.

Во всех случаях жертва просто выполняет обычный DNS-запрос — Windows делает остальное.

Детали патча Microsoft устранила проблему в обновлении Patch Tuesday от 12 мая 2026 года (сборка 21.2.24).

Что изменилось Парсер теперь округляет длину данных до границы 4 байт.

Выделение буферов увеличено для обеспечения четкого разделения между записями ответов.

Добавлены дополнительные проверки для обнаружения поврежденных пакетов.

Это полностью устраняет переполнение.

Смягчение и рекомендации по защите

Немедленно установите патч Разверните обновление от 12 мая 2026 года во всех средах Windows 11 и Server.

Тестирование

Используйте контролируемую лабораторную ВМ для проверки:

Эксплойт срабатывает на незапатченных системах.

Запатченная система безопасно отклоняет поврежденный пакет.

Мониторинг

Проверьте:

Код Журнал событий → Система → DNS API Ищите необычные события «DNS answer parsed» вокруг подозрительных временных меток.

Эшелонированная защита

Укрепите внутренние DNS-резолверы.

Используйте DNSSEC где возможно.

Сегментируйте сети для ограничения горизонтального перемещения.

Использование Splunk Enterprise

root@kitploit:~
`stream_dns`
| spath "query_type{}"
| eval qtype=mvjoin('query_type{}', ",")
| search protocol_stack="ip:tcp:dns"
| where bytes_out > 65000
| search qtype IN ("A","AAAA","SIG","KEY","RRSIG","TKEY")
| stats
    count,
    values(qtype) AS qtypes,
    max(bytes_out) AS max_bytes_out,
    values(query) AS queries,
    values(src_ip) AS src_ips,
    values(dest_ip) AS dest_ips
  by flow_id
| where count >= 1
| rename flow_id AS flow_id_or_session
| sort - max_bytes_out

MS Sentinel

root@kitploit:~

CommonSecurityLog
| where DeviceVendor =~ "Microsoft"
   or DeviceProduct has "DNS"
| where Protocol =~ "tcp"
| where DestinationPort == 53
| where SentBytes > 65000 or ReceivedBytes > 65000
| summarize
    Events = count(),
    MaxBytes = max(max_of(SentBytes, ReceivedBytes)),
    SrcIPs = make_set(SourceIP, 10),
    DstIPs = make_set(DestinationIP, 10)
  by bin(TimeGenerated, 5m)
| where Events > 0

Заключение

CVE‑2026‑41096 — одна из самых значимых уязвимостей, связанных с DNS, за последние годы. Поскольку она находится в клиенте DNS Windows, а не на сервере, каждая машина становится поверхностью атаки — ноутбуки, настольные ПК, серверы, контроллеры домена и т.д.

Одного поддельного DNS-ответа достаточно, чтобы скомпрометировать систему.

Патч Microsoft исправляет ошибку расчета границ и полностью устраняет переполнение, но незапатченные среды остаются под высоким риском.

Если вы рекрутер или руководитель отдела разработки, просматривающий этот материал: Этот отчет демонстрирует как коммуникацию на высоком уровне, так и глубокий технический анализ, ожидаемый от исследователя безопасности.

Скачать инструмент