Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-59346-POC — PoC para CVE-2026-59346 - estouro de inteiro de 32 bits no caminho de segmentação TSO do VMXNET3 da VMware, travamento de guest para host. | Kitploit
Ferramentas/GitHubGitHub/0xcyberstan/cve-2026-59346-poc
Análise de VulnerabilidadesExploraçãoVirtualização para SegurançaSegurança de Hardware e IoTPapers e PesquisaExploração de Binários
GitHub0xcyberstan/cve-2026-59346-poc

CVE-2026-59346-POC

PoC para CVE-2026-59346 - estouro de inteiro de 32 bits no caminho de segmentação TSO do VMXNET3 da VMware, travamento de guest para host.

Ver Repositório
há 22h 3mAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-59346 — Estouro de Inteiro no TSO do VMXNET3 (VMware Workstation / Fusion)

Prova de conceito para um estouro de inteiro de 32 bits no caminho de segmentação TSO da NIC virtual VMXNET3 em vmware-vmx, alcançável a partir de uma VM convidada.

Este problema está corrigido. O PoC é publicado apenas para fins de pesquisa e defesa. Ele provoca um crash no lado do host (SIGSEGV) e não tenta execução de código.

CVECVE-2026-59346
Writeupcyberstan.co.uk/vmxnet3-tso-overflow
Aviso ZDIZDI-26-647
Aviso do fornecedorVMSA-2026-0007
CVSSv39.3 (fornecedor) / 7.5 (ZDI)
Corrigido emWorkstation / Fusion 26H1u1
Reportado viaTrend Micro Zero Day Initiative

Resumo

A rotina de segmentação TSO do VMXNET3 calcula o tamanho da sua alocação como seg_count * per_seg_size usando um imul de 32 bits. Quando o produto real excede 2^32, o resultado sofre wrap, e o alocador recebe o valor truncado. O laço de segmentação que se segue é controlado por seg_count, não pelo tamanho da alocação, então ele escreve per_seg_size bytes por segmento em um buffer dimensionado a partir do produto com wrap.

Uma correção anterior para esse caminho de código (CVE-2025-41236) adicionou verificações de limites rejeitando pacotes em que MSS, per_seg_size, ou sua soma excedem 9216. Essas verificações restringem os campos individuais do descritor, mas nunca o produto, que é o valor que de fato sofre wrap. Parâmetros bem abaixo do limite de 9216 ainda alcançam o estouro.

Análise completa da causa raiz, disassembly anotado e geometria do heap: cyberstan.co.uk/vmxnet3-tso-overflow.

Impacto

Um usuário convidado com privilégio suficiente para escrever descritores TX brutos pode causar uma grande escrita fora dos limites no processo vmware-vmx do host com conteúdo proveniente do pacote fornecido pelo convidado. Neste PoC a escrita prossegue até atingir memória não mapeada e o processo do host morre com SIGSEGV, desligando a VM.

O fornecedor classificou o problema como permitindo execução de código arbitrário no contexto do hypervisor; o PoC publicado demonstra apenas a violação de segurança de memória e para no crash.

Produtos afetados

Todos os produtos de hypervisor desktop da VMware que compartilham o backend VMXNET3 do vmware-vmx: Workstation, Fusion e Player. O VMXNET3 é o adaptador padrão para convidados modernos. Consulte VMSA-2026-0007 para a lista autoritativa de versões afetadas.

Compilação e execução

O PoC é um módulo de kernel Linux que roda dentro do convidado. Ele escreve descritores do anel TX do VMXNET3 diretamente, contornando a lógica TSO do driver em kernel, e então aciona o registrador 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

O processo vmware-vmx do host irá crashar e o convidado será desligado. Espere perder qualquer estado não salvo na VM, e tire um snapshot primeiro se quiser executá-lo novamente.

Antes de começar

O convidado precisa de um adaptador VMXNET3. Verifique com lspci | grep -i vmxnet ou confirme ethernet0.virtualDev = "vmxnet3" no arquivo .vmx. O módulo fala diretamente com a NIC, então a interface deve estar ativa e vinculada ao driver vmxnet3.

Parâmetros do módulo

ParâmetroPadrãoPropósito
ifnameeth0Interface suportada pelo adaptador VMXNET3
dryrun01 escreve os descritores mas pula o doorbell, então nada é acionado
wait_ms0Atraso em ms entre a configuração do descritor e a escrita no doorbell
txwarm0Pacotes TSO a empurrar pelo anel antes do pacote de estouro
warmup0Alocações no lado do host a emitir antes de acionar
freechunk0Alocações do mesmo tamanho a fazer e liberar parcialmente antes de acionar

warmup e freechunk moldam o heap do host antes que o estouro ocorra. Eles não são necessários para reproduzir o crash; deixe-os em zero a menos que você esteja investigando o layout de alocação.

Sequência sugerida

Comece com uma execução a seco para confirmar que o módulo encontra o anel e calcula os parâmetros, sem tocar no host:

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

A saída esperada inclui a geometria calculada e o anel TX localizado:

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

Se o anel não for encontrado, o módulo registra TX ring not found e aborta. Isso geralmente significa uma diferença no layout do driver; a heurística de busca em find_tx_ring() precisa de ajuste para esse kernel.

Então acione de verdade, em uma interface não padrão se necessário:

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

O convidado morre junto com o processo do host, então as últimas mensagens podem não chegar ao disco. Para capturá-las, observe o console em vez de confiar no journal:

root@kitploit:~
dmesg -w

Confirme o crash pelo lado do host no vmware.log da VM, que mostrará um PANIC: Unexpected signal: 11 com um backtrace passando pelo alocador na thread vcpu-0.

Se nada acontecer

  • Host corrigido. Qualquer versão 26H1u1 ou posterior rejeita o pacote. O módulo registrará normalmente e a VM continuará rodando.
  • Interface errada. ifname deve nomear o dispositivo VMXNET3, não uma bridge ou um adaptador e1000 secundário.
  • Anel muito pequeno. O módulo aborta com need N entries but ring has M slots se o anel TX não puder conter a cadeia de descritores.

Ambiente testado

HostUbuntu 24.04 LTS, kernel 6.17.0, glibc 2.39
HypervisorVMware Workstation Pro 25.0.1 (build 25219725)
ConvidadoAlpine Linux, kernel 6.12, NIC VMXNET3

Os deslocamentos de símbolos referenciados na análise são específicos para o build 25219725. O padrão vulnerável é o mesmo entre builds, mas os deslocamentos irão diferir.

Conteúdo

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

Correção

A multiplicação precisa ser realizada em 64 bits, com o resultado limitado antes de chegar ao alocador. Limitar os campos individuais do descritor não é suficiente, já que o estouro é uma propriedade do produto e não de qualquer um dos operandos.

Cronologia de divulgação

DataEvento
2026Reportado à Trend Micro ZDI
Set 2026Corrigido pela Broadcom em 26H1u1 (VMSA-2026-0007)
Set 2026ZDI-26-647 publicado

Uso

Publicado sob divulgação coordenada, após o lançamento de uma correção. Execute-o apenas contra sistemas que você possui ou está autorizado a testar. Ele irá crashar o processo do hypervisor do host, então não aponte-o para nada com que você se importe.

Autor

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

Baixar ferramenta