Sploitus

Exploit for CVE-2026-62735

kitploit · 2026-09-03

Exploit Code

MARKDOWN181 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-HACKSPEAK-CVE-2026-62735
# CVE-2026-62735

## Информация

  * Эта уязвимость была первоначально обнаружена Siyeon Wi. Я воспроизвёл уязвимость независимо в образовательных целях и для изучения.
  * Уязвимость также была продемонстрирована на Pwn2Own Berlin 2026. Ссылки: 
    * Статус TrendAI Zero Day Initiative
    * Блог TrendAI Zero Day Initiative
  * Детали обновления Microsoft: CVE-2026-62735
  * PoC демонстрирует крах из-за уязвимости `Integer Overflow`. С помощью этой уязвимости мы имеем примитив `Heap Overflow` -> `SYSTEM shell`.



## Краткое описание

  * Уязвимость: `Integer Overflow`
  * Компонент: `http.sys`
  * Функция запуска: `UlpCreateInternalResponseOld`
  * Версия Windows: Windows 11 25H2 26200.8875



## Детали

  * Уязвимость целочисленного переполнения возникает при вычислении общего количества байтов заголовков. В результате `http.sys` выделяет память на основе `TotalHeaderBytes`, хотя заголовки требуют гораздо большего буфера. Это создаёт основу для переполнения выделения из nonpaged-пула в `UlGenerateMultipleKnownHeadersOld`:



root@kitploit:~
    
    
    __int64 __fastcall UlpCreateInternalResponseOld(
        sv_UL_REQUEST *Request,
        unsigned __int16 EntityChunkCount,
        unsigned int FixedHeaderCount,
        unsigned int FixedHeaderBytes,
        unsigned int MultipleHeaderCount,
        unsigned int MultipleHeaderBytes,
        unsigned __int16 KnownHeaderCount,
        unsigned int TrailerCount,
        unsigned int TrailerBytes,
        char FastForwardRequested,
        char CacheEligible,
        char ResponseInfoPresent,
        char AutomaticChunkingRequired,
        char AdditionalHeaderRequired,
        sv_UL_INTERNAL_RESPONSE **InternalResponseOut)
    {
        int VariableHeaderBytes; // r9d
        int H3ExtraHeaderBytes; // r10d
        unsigned int MultipleHeaderBytesLocal; // ecx
        unsigned int TotalHeaderBytes; // [rsp+E8h] [rbp+60h]
        ...
        // 0xffffff32 + 0x2e + 0 + 0xa0 = 0x4e
        TotalHeaderBytes = MultipleHeaderBytesLocal + FixedHeaderBytes + H3ExtraHeaderBytes + VariableHeaderBytes;
        ...
    }
    

## Журнал краха

  * Bugcheck:



root@kitploit:~
    
    
    *** Fatal System Error: 0x00000050
                           (0xFFFFCD86AE712000,0x0000000000000002,0xFFFFF807489C4362,0x0000000000000002)
    
    Driver at fault: 
    ***      HTTP.sys - Address FFFFF807489C4362 base at FFFFF80748860000, DateStamp 2bfcaa4c
    .
    Break instruction exception - code 80000003 (first chance)
    
    A fatal system error has occurred.
    Debugger entered on first try; Bugcheck callbacks have not been invoked.
    
    A fatal system error has occurred.
    
    For analysis of this file, run !analyze -v
    nt!DbgBreakPointWithStatus:
    fffff807`b26fa0d0 cc              int     3
    

  * Трассировка стека:



root@kitploit:~
    
    
    0: kd> k
     # Child-SP          RetAddr               Call Site
    00 ffffe205`092ddf78 fffff807`b27afcf2     nt!DbgBreakPointWithStatus
    01 ffffe205`092ddf80 fffff807`b27af21e     nt!KiBugCheckDebugBreak+0x12
    02 ffffe205`092ddfe0 fffff807`b26f9357     nt!KeBugCheck2+0xb2e
    03 ffffe205`092de770 fffff807`b24fd030     nt!KeBugCheckEx+0x107
    04 ffffe205`092de7b0 fffff807`b2443c56     nt!MiSystemFault+0x850
    05 ffffe205`092de8a0 fffff807`b28badcb     nt!MmAccessFault+0x646
    06 ffffe205`092dea10 fffff807`489c4362     nt!KiPageFault+0x38b
    07 ffffe205`092deba8 fffff807`489a6611     HTTP!memcpy+0x122
    08 ffffe205`092debb0 fffff807`4897c165     HTTP!UlGenerateMultipleKnownHeadersOld+0xbdd
    09 ffffe205`092ded90 fffff807`48976db0     HTTP!UlpPrepareHttpResponseOld+0x2c9
    0a ffffe205`092dee70 fffff807`489361a4     HTTP!UlCaptureHttpResponseOld+0x92c
    0b ffffe205`092defc0 fffff807`488f7c92     HTTP!UlSendHttpResponseIoctlOld+0x1160
    0c ffffe205`092df600 fffff807`488c4db5     HTTP!UlSendHttpResponseIoctl+0x12
    0d ffffe205`092df630 fffff807`b245cabb     HTTP!UxDeviceControl+0xb5
    0e ffffe205`092df670 fffff807`b245ca33     nt!IopfCallDriver+0x5b
    0f ffffe205`092df6b0 fffff807`b2ac0e75     nt!IofCallDriver+0x13
    10 ffffe205`092df6e0 fffff807`b2abfcbc     nt!IopSynchronousServiceTail+0x1c5
    11 ffffe205`092df790 fffff807`b2abf30e     nt!IopXxxControlFile+0x99c
    12 ffffe205`092dfa00 fffff807`b28bf255     nt!NtDeviceIoControlFile+0x5e
    13 ffffe205`092dfa70 00007ffa`d37c0144     nt!KiSystemServiceCopyEnd+0x25
    14 00000014`0d9af2d8 00007ffa`d08a3953     ntdll!NtDeviceIoControlFile+0x14
    15 00000014`0d9af2e0 00007ffa`d1f93335     KERNELBASE!DeviceIoControl+0x73
    16 00000014`0d9af350 00007ff7`00cb1cb4     KERNEL32!DeviceIoControlImplementation+0x75
    17 00000014`0d9af3a0 00000000`00001f7f     poc!main+0x924
    18 00000014`0d9af3a8 00000000`00000007     0x1f7f
    19 00000014`0d9af3b0 00000014`0d9af4a0     0x7
    1a 00000014`0d9af3b8 00000000`00000000     0x00000014`0d9af4a0
    

* * *

# Пояснения к зеркалу распространения (中文)

Данный репозиторий является зеркалом распространения PoC для уязвимости **CVE-2026-62735 (Windows HTTP.sys целочисленное переполнение → переполнение nonpaged-пула → SYSTEM)** (технические пояснения см. в оригинальном README выше). Содержимое получено из публичного PoC вышестоящего репозитория и предназначено только для архивирования и распространения. PoC предназначен исключительно для исследований безопасности, проверки уязвимостей и авторизованного тестирования. Не используйте его против неавторизованных целей.

## Краткое описание уязвимости / Vulnerability Summary

  * **CVE-2026-62735** / Microsoft Windows HTTP.sys Elevation of Privilege
  * **Обнаружение/демонстрация** : Siyeon Wi (Pwn2Own Berlin 2026); данный PoC независимо воспроизведён **nhh9905**
  * **Тип** : целочисленное переполнение (переполнение при вычислении общего количества байтов заголовков) → переполнение кучи nonpaged-пула → **повышение привилегий до SYSTEM (LPE)**
  * **CVSS 3.1** : MSRC **7.8** (Important) / ZDI **8.8** (AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H)
  * **Функции запуска** : `UlpCreateInternalResponseOld` / `UlGenerateMultipleKnownHeadersOld` (http.sys, старый путь кода)
  * **Целевая версия** : Windows 11 25H2 26200.8875 (публичное воспроизведение); исправленная версия Windows 11 25H2 **26200.9168**
  * **Способ запуска** : локальный процесс с низкими привилегиями создаёт собственный HTTP-клиент и сервер, формирует большое количество многозначных HTTP-заголовков ответа и передаёт их через IOCTL `0x12403F` (`UlSendHttpResponseIoctl`) в http.sys
  * **Предварительные условия** : атакующему необходимо сначала иметь возможность выполнять код с низкими привилегиями на целевой системе (PR:L)



Основной принцип: `TotalHeaderBytes = MultipleHeaderBytesLocal + FixedHeaderBytes + H3ExtraHeaderBytes + VariableHeaderBytes` — когда количество байтов многозначных заголовков ответа доводится до значения, близкого к 2³², это 32-битное суммирование переполняется до очень малого значения (`0xffffff32 + 0x2e + 0 + 0xa0 = 0x4e`), и `ExAllocatePool3` выделяет на основе этого буфер ядра, значительно меньший реально необходимого. Затем `memcpy` в `UlGenerateMultipleKnownHeadersOld` записывает за пределы этого блока nonpaged-пула.

## Структура каталога / Layout

root@kitploit:~
    
    
    poc/   poc.cpp + head.hpp —— полная эксплуатация: DQE heap spray через именованные каналы → переполнение пула с контролем 0x30 байт заголовка → произвольное чтение/запись → копирование SYSTEM token → SYSTEM shell
    crash/ poc.cpp + head.hpp —— только запуск краха (проверка наличия уязвимости, вызывает bugcheck 0x50)
    

## Требования и использование / Requirements & Usage

  * Целевая система: Windows 11 25H2 (около 26200.8875) без установленного патча; требуется возможность локального выполнения
  * Сборка: для poc.cpp требуется Visual Studio (Windows) + Windows SDK, компиляция с зависимостями HTTPAPI / WinHTTP
  * `crash/` и `poc/` — независимые исполняемые файлы; после успешного запуска `poc.exe` открывается SYSTEM shell



## Отказ от ответственности / Disclaimer

Данный PoC предназначен исключительно для обучения, исследований безопасности и авторизованного тестирования. Запускать его можно только на собственных системах или системах с явно полученным разрешением. Эксплуатация повышает привилегии до SYSTEM через переполнение пула ядра и может вызвать синий экран (0x50). Тестируйте в виртуальной машине, которую можно уничтожить.

## Авторство и лицензия / Attribution & License

  * Обнаружитель уязвимости: **Siyeon Wi** (Pwn2Own Berlin 2026, официальная благодарность ZDI).
  * Автор данного PoC: **nhh9905** (независимое воспроизведение на основе официального бюллетеня, включая полную цепочку эксплуатации до SYSTEM).
  * Репозиторий распространяется под лицензией **MIT License** (см. `LICENSE`).



## Ссылки / References

  * Репозиторий PoC вышестоящего автора: https://github.com/nhh9905/CVE-2026-62735
  * Writeup исследователя (HackMD): https://hackmd.io/@nhh/Hy6Oem7_Me
  * MSRC: https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-62735
  * ZDI: https://www.zerodayinitiative.com/advisories/ZDI-26-536/