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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-59346-POC — PoC для CVE-2026-59346 — 32-битное целочисленное переполнение в пути сегментации TSO VMXNET3 от VMware, крах из гостевой системы в хост-систему. | Kitploit
Инструменты/GitHubGitHub/0xcyberstan/cve-2026-59346-poc
Анализ уязвимостейЭксплуатацияВиртуализация для безопасностиБезопасность оборудования и IoTСтатьи и ИсследованияЭксплуатация Бинарных Файлов
GitHub0xcyberstan/cve-2026-59346-poc

CVE-2026-59346-POC

PoC для CVE-2026-59346 — 32-битное целочисленное переполнение в пути сегментации TSO VMXNET3 от VMware, крах из гостевой системы в хост-систему.

Репозиторий
22 ч 3 мин назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2026-59346 — целочисленное переполнение TSO в VMXNET3 (VMware Workstation / Fusion)

Proof-of-concept для 32-битного целочисленного переполнения в пути сегментации TSO виртуального сетевого адаптера VMXNET3 в vmware-vmx, достижимого из гостевой ВМ.

Эта уязвимость исправлена. PoC опубликован исключительно в исследовательских и защитных целях. Он вызывает сбой на стороне хоста (SIGSEGV) и не пытается выполнить код.

CVECVE-2026-59346
Разборcyberstan.co.uk/vmxnet3-tso-overflow
Рекомендация ZDIZDI-26-647
Рекомендация вендораVMSA-2026-0007
CVSSv39.3 (вендор) / 7.5 (ZDI)
Исправлено вWorkstation / Fusion 26H1u1
Сообщено черезTrend Micro Zero Day Initiative

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

Процедура сегментации TSO в VMXNET3 вычисляет размер выделяемой памяти как seg_count * per_seg_size, используя 32-битный imul. Когда истинное произведение превышает 2^32, результат переполняется, и аллокатор получает усечённое значение. Следующий за этим цикл сегментации управляется значением seg_count, а не размером выделенной памяти, поэтому он записывает per_seg_size байт на каждый сегмент в буфер, размер которого вычислен из переполненного произведения.

Более раннее исправление этого участка кода (CVE-2025-41236) добавило проверки границ, отклоняющие пакеты, в которых MSS, per_seg_size или их сумма превышают 9216. Эти проверки ограничивают отдельные поля дескриптора, но никогда — произведение, а именно оно и переполняется. Параметры, значительно меньшие лимита 9216, всё равно приводят к переполнению.

Полный анализ первопричины, аннотированный дизассемблер и геометрия кучи: cyberstan.co.uk/vmxnet3-tso-overflow.

Воздействие

Гостевой пользователь с достаточными привилегиями для записи сырых TX-дескрипторов может вызвать масштабную запись за границами буфера в хост-процессе vmware-vmx с содержимым, взятым из пакета, предоставленного гостем. В этом PoC запись продолжается до достижения неотображённой памяти, и хост-процесс завершается с SIGSEGV, выключая ВМ.

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

Затронутые продукты

Все настольные гипервизорные продукты VMware, использующие бэкенд VMXNET3 в vmware-vmx: Workstation, Fusion и Player. VMXNET3 — адаптер по умолчанию для современных гостевых систем. Авторитетный список затронутых версий см. в VMSA-2026-0007.

Сборка и запуск

PoC представляет собой модуль ядра Linux, работающий внутри гостевой системы. Он записывает TX-дескрипторы кольца VMXNET3 напрямую, обходя логику TSO драйвера в ядре, а затем подаёт сигнал через MMIO-регистр doorbell.

root@kitploit:~
# Inside the guest VM, as root:

# Kernel headers
apk add linux-virt-dev                        # Alpine
# apt install linux-headers-$(uname -r)       # Debian / Ubuntu

make
insmod vmxnet3_tso_trigger.ko

Хост-процесс vmware-vmx завершится сбоем, и гостевая система выключится. Ожидайте потери любых несохранённых данных в ВМ; сделайте снимок заранее, если хотите запустить это повторно.

Перед началом

Гостевой системе нужен адаптер VMXNET3. Проверьте с помощью lspci | grep -i vmxnet или убедитесь, что в файле .vmx указано ethernet0.virtualDev = "vmxnet3". Модуль обращается к сетевому адаптеру напрямую, поэтому интерфейс должен быть поднят и привязан к драйверу vmxnet3.

Параметры модуля

ПараметрПо умолчаниюНазначение
ifnameeth0Интерфейс, связанный с адаптером VMXNET3
dryrun01 записывает дескрипторы, но пропускает doorbell, поэтому ничего не срабатывает
wait_ms0Задержка в мс между настройкой дескрипторов и записью в doorbell
txwarm0Количество TSO-пакетов, прогоняемых через кольцо перед пакетом переполнения
warmup0Количество выделений памяти на стороне хоста перед срабатыванием
freechunk0Выделения того же размера, создаваемые и частично освобождаемые перед срабатыванием

warmup и freechunk формируют кучу хоста перед тем, как сработает переполнение. Они не нужны для воспроизведения сбоя; оставьте их нулевыми, если только вы не исследуете размещение выделений памяти.

Рекомендуемая последовательность

Начните с пробного запуска, чтобы убедиться, что модуль находит кольцо и вычисляет параметры, не затрагивая хост:

root@kitploit:~
insmod vmxnet3_tso_trigger.ko dryrun=1
dmesg | tail -20
rmmod vmxnet3_tso_trigger

Ожидаемый вывод включает вычисленную геометрию и найденное TX-кольцо:

root@kitploit:~
tso_v8: per_seg=6240 (0x1860), HDR_TOTAL=6222, MSS=1
tso_v8: PARAMS: alloc=... overflow=... seg_count=... paylen=...
tso_v8: ring at priv+N: base=... sz=... n2f=... gen=...
tso_v8: DRYRUN -- descriptors written but NOT triggered

Если кольцо не найдено, модуль записывает в лог TX ring not found и прерывается. Обычно это означает различие в раскладке драйвера; эвристику поиска в find_tx_ring() нужно скорректировать для этого ядра.

Затем запустите по-настоящему, при необходимости на нестандартном интерфейсе:

root@kitploit:~
insmod vmxnet3_tso_trigger.ko ifname=eth1

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

root@kitploit:~
dmesg -w

Подтвердите сбой со стороны хоста в файле vmware.log данной ВМ, где будет показано PANIC: Unexpected signal: 11 с обратной трассировкой через аллокатор в потоке vcpu-0.

Если ничего не происходит

  • Исправленный хост. Любая версия 26H1u1 или более поздняя отклоняет пакет. Модуль будет логировать нормально, а ВМ продолжит работу.
  • Неверный интерфейс. ifname должен указывать на устройство VMXNET3, а не на мост или вторичный адаптер e1000.
  • Кольцо слишком мало. Модуль прерывается с need N entries but ring has M slots, если TX-кольцо не может вместить цепочку дескрипторов.

Тестовая среда

ХостUbuntu 24.04 LTS, ядро 6.17.0, glibc 2.39
ГипервизорVMware Workstation Pro 25.0.1 (сборка 25219725)
Гостевая системаAlpine Linux, ядро 6.12, сетевой адаптер VMXNET3

Смещения символов, упомянутые в анализе, специфичны для сборки 25219725. Уязвимый шаблон одинаков во всех сборках, но смещения будут различаться.

Содержимое

root@kitploit:~
vmxnet3_tso_trigger.c   trigger module
Makefile                   out-of-tree kernel module build

Исправление

Умножение необходимо выполнять в 64 битах, а результат должен быть ограничен до того, как он попадёт в аллокатор. Ограничения отдельных полей дескриптора недостаточно, поскольку переполнение является свойством произведения, а не какого-либо из операндов.

Хронология раскрытия

ДатаСобытие
2026Сообщено в Trend Micro ZDI
Сентябрь 2026Исправлено Broadcom в 26H1u1 (VMSA-2026-0007)
Сентябрь 2026Опубликовано ZDI-26-647

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

Опубликовано в рамках скоординированного раскрытия, после выпуска исправления. Запускайте только против систем, которыми вы владеете или которые вам разрешено тестировать. Это приведёт к сбою хост-процесса гипервизора, поэтому не направляйте его на что-либо, что вам дорого.

Автор

Stan S - cyberstan.co.uk · @0xCyberstan

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