Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-59346-POC — PoC pour CVE-2026-59346 - dépassement d'entier 32 bits dans le chemin de segmentation TSO de VMXNET3 de VMware, plantage invité-vers-hôte. | Kitploit
Outils/GitHubGitHub/0xcyberstan/cve-2026-59346-poc
Analyse des VulnérabilitésExploitationVirtualisation de SécuritéSécurité Matériel et IoTArticles et RechercheExploitation de Binaires
GitHub0xcyberstan/cve-2026-59346-poc

CVE-2026-59346-POC

PoC pour CVE-2026-59346 - dépassement d'entier 32 bits dans le chemin de segmentation TSO de VMXNET3 de VMware, plantage invité-vers-hôte.

Voir le dépôt
il y a 22h 3mPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-59346 — Débordement d'entier TSO VMXNET3 (VMware Workstation / Fusion)

Preuve de concept pour un débordement d'entier 32 bits dans le chemin de segmentation TSO de la carte réseau virtuelle VMXNET3 dans vmware-vmx, atteignable depuis une VM invitée.

Ce problème est corrigé. Le PoC est publié à des fins de recherche et de défense uniquement. Il déclenche un crash côté hôte (SIGSEGV) et ne tente pas d'exécution de code.

CVECVE-2026-59346
Writeupcyberstan.co.uk/vmxnet3-tso-overflow
Avis ZDIZDI-26-647
Avis éditeurVMSA-2026-0007
CVSSv39.3 (éditeur) / 7.5 (ZDI)
Corrigé dansWorkstation / Fusion 26H1u1
Signalé viaTrend Micro Zero Day Initiative

Résumé

La routine de segmentation TSO de VMXNET3 calcule sa taille d'allocation comme seg_count * per_seg_size en utilisant un imul 32 bits. Lorsque le produit réel dépasse 2^32, le résultat déborde, et l'allocateur reçoit la valeur tronquée. La boucle de segmentation qui suit est pilotée par seg_count, et non par la taille d'allocation, de sorte qu'elle écrit per_seg_size octets par segment dans un tampon dimensionné à partir du produit après débordement.

Un correctif antérieur pour ce chemin de code (CVE-2025-41236) a ajouté des vérifications de limites rejetant les paquets où MSS, per_seg_size, ou leur somme dépassent 9216. Ces vérifications contraignent les champs individuels du descripteur mais jamais le produit, qui est la valeur qui déborde réellement. Des paramètres bien en dessous de la limite de 9216 atteignent toujours le débordement.

Analyse complète de la cause racine, désassemblage annoté et géométrie du tas : cyberstan.co.uk/vmxnet3-tso-overflow.

Impact

Un utilisateur invité disposant de privilèges suffisants pour écrire des descripteurs TX bruts peut provoquer une importante écriture hors limites dans le processus hôte vmware-vmx avec un contenu issu du paquet fourni par l'invité. Dans ce PoC, l'écriture se poursuit jusqu'à atteindre de la mémoire non mappée et le processus hôte meurt avec SIGSEGV, éteignant la VM.

L'éditeur a classé le problème comme permettant l'exécution de code arbitraire dans le contexte de l'hyperviseur ; le PoC publié ne démontre que la violation de sûreté mémoire et s'arrête au crash.

Produits affectés

Tous les produits hyperviseurs de bureau VMware partageant le backend VMXNET3 de vmware-vmx : Workstation, Fusion et Player. VMXNET3 est la carte par défaut pour les invités modernes. Voir VMSA-2026-0007 pour la liste faisant autorité des versions affectées.

Compilation et exécution

Le PoC est un module noyau Linux qui s'exécute à l'intérieur de l'invité. Il écrit directement les descripteurs de l'anneau TX VMXNET3, contournant la logique TSO du pilote en noyau, puis sonne le registre 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

Le processus hôte vmware-vmx plantera et l'invité s'éteindra. Attendez-vous à perdre tout état non sauvegardé dans la VM, et prenez un instantané au préalable si vous souhaitez le réexécuter.

Avant de commencer

L'invité a besoin d'une carte VMXNET3. Vérifiez avec lspci | grep -i vmxnet ou confirmez ethernet0.virtualDev = "vmxnet3" dans le fichier .vmx. Le module communique directement avec la carte réseau, donc l'interface doit être active et liée au pilote vmxnet3.

Paramètres du module

ParamètreDéfautRôle
ifnameeth0Interface adossée à la carte VMXNET3
dryrun01 écrit les descripteurs mais saute le doorbell, donc rien n'est déclenché
wait_ms0Délai en ms entre la configuration des descripteurs et l'écriture du doorbell
txwarm0Paquets TSO à faire passer dans l'anneau avant le paquet de débordement
warmup0Allocations côté hôte à effectuer avant le déclenchement
freechunk0Allocations de même taille à effectuer et à libérer partiellement avant le déclenchement

warmup et freechunk façonnent le tas de l'hôte avant que le débordement ne se produise. Ils ne sont pas nécessaires pour reproduire le crash ; laissez-les à zéro sauf si vous étudiez la disposition des allocations.

Séquence suggérée

Commencez par une exécution à blanc pour confirmer que le module trouve l'anneau et calcule les paramètres, sans toucher à l'hôte :

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

La sortie attendue inclut la géométrie calculée et l'anneau TX localisé :

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

Si l'anneau n'est pas trouvé, le module journalise TX ring not found et abandonne. Cela signifie généralement une différence de disposition du pilote ; l'heuristique de recherche dans find_tx_ring() doit être ajustée pour ce noyau.

Puis déclenchez pour de vrai, sur une interface non par défaut si nécessaire :

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

L'invité meurt avec le processus hôte, donc les derniers messages peuvent ne pas atteindre le disque. Pour les capturer, surveillez la console plutôt que de vous fier au journal :

root@kitploit:~
dmesg -w

Confirmez le crash côté hôte dans le vmware.log de la VM, qui affichera un PANIC: Unexpected signal: 11 avec une trace d'appels passant par l'allocateur sur le thread vcpu-0.

Si rien ne se passe

  • Hôte corrigé. Tout ce qui est en 26H1u1 ou ultérieur rejette le paquet. Le module journalisera normalement et la VM continuera de fonctionner.
  • Mauvaise interface. ifname doit désigner le périphérique VMXNET3, pas un pont ni une carte e1000 secondaire.
  • Anneau trop petit. Le module abandonne avec need N entries but ring has M slots si l'anneau TX ne peut pas contenir la chaîne de descripteurs.

Environnement testé

HôteUbuntu 24.04 LTS, noyau 6.17.0, glibc 2.39
HyperviseurVMware Workstation Pro 25.0.1 (build 25219725)
InvitéAlpine Linux, noyau 6.12, carte VMXNET3

Les décalages de symboles référencés dans l'analyse sont spécifiques au build 25219725. Le motif vulnérable est le même d'un build à l'autre, mais les décalages différeront.

Contenu

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

Correctif

La multiplication doit être effectuée en 64 bits, avec le résultat borné avant d'atteindre l'allocateur. Plafonner les champs individuels du descripteur ne suffit pas, car le débordement est une propriété du produit et non de l'un ou l'autre des opérandes.

Chronologie de divulgation

DateÉvénement
2026Signalé à Trend Micro ZDI
Sept 2026Corrigé par Broadcom dans 26H1u1 (VMSA-2026-0007)
Sept 2026ZDI-26-647 publié

Utilisation

Publié dans le cadre d'une divulgation coordonnée, après la sortie d'un correctif. Ne l'exécutez que contre des systèmes que vous possédez ou êtes autorisé à tester. Cela plantera le processus hyperviseur hôte, donc ne le pointez vers rien qui vous importe.

Auteur

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

Télécharger l’outil