
Exploit proof-of-concept di container escape per CVE-2026-80521 e CVE-2026-52910, con un harness QEMU/Ubuntu VM usa e getta per l'esecuzione sicura dei PoC.
Questa directory compila ed esegue un container Docker Ubuntu all'interno di un guest QEMU Ubuntu usa e getta. I PoC vengono copiati nel guest e non vengono mai eseguiti dagli script host.
qemu-imgcurlxorrisosocat solo quando viene usato VM_PAYLOAD_CONSOLE=1KVM viene usato quando disponibile; in caso contrario QEMU ripiega su TCG.
UBUNTU_VERSION=26.04 \
VM_EXPECTED_KERNEL=7.0.0-31-generic \
./vm/build_image.sh
Il builder scarica l'immagine cloud della release Ubuntu selezionata, la convalida rispetto al file SHA256SUMS pubblicato da Ubuntu, installa gli aggiornamenti dei pacchetti e Docker, scarica l'immagine container Ubuntu corrispondente e scrive vm/ubuntu-<version>.qcow2.
Gli URL predefiniti sono fissati alle ultime immagini di release ufficiali disponibili il 16 settembre 2026:
2026091120260823Imposta UBUNTU_RELEASE_URL, UBUNTU_IMAGE_URL o UBUNTU_SUMS_URL per usare un'altra release.
L'immagine qcow2 generata e la chiave SSH sono artefatti locali ignorati da Git. La chiave privata rimane con modalità 0600.
UBUNTU_VERSION=26.04 \
VM_EXPECTED_KERNEL=7.0.0-31-generic \
./vm/run_container.sh ./path/to/binary [arguments...]
Ogni esecuzione crea un overlay qcow2 temporaneo, avvia il guest, copia il binario via SSH e lo lancia in un container nuovo con il networking disabilitato. Gli argomenti, gli stream standard e lo stato di uscita vengono inoltrati.
Override utili:
VM_CPUS=4 VM_MEMORY_MB=4096 ./vm/run_container.sh ./binary
VM_SSH_PORT=2223 ./vm/run_container.sh ./binary
KEEP_VM_RUN_DIR=1 ./vm/run_container.sh ./binary
KEEP_VM_RUN_DIR=1 conserva l'overlay e i log sotto /tmp/ubuntu-container.*. Ogni invocazione esegue un avvio della VM e un tentativo di payload. Imposta VM_PAYLOAD_CONSOLE=1 per un payload che usa esplicitamente la seconda porta seriale del guest.