
CVE-2026-80521 और CVE-2026-52910 के लिए कंटेनर एस्केप प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, सुरक्षित PoC निष्पादन के लिए एक डिस्पोज़ेबल QEMU/Ubuntu VM हार्नेस के साथ।
यह डायरेक्टरी एक डिस्पोज़ेबल Ubuntu QEMU गेस्ट के अंदर एक Ubuntu Docker कंटेनर बनाती और चलाती है। PoC को गेस्ट में कॉपी किया जाता है और उन्हें कभी भी होस्ट स्क्रिप्ट द्वारा निष्पादित नहीं किया जाता।
qemu-imgcurlxorrisosocat केवल तब जब VM_PAYLOAD_CONSOLE=1 का उपयोग किया जाता हैKVM का उपयोग तब किया जाता है जब उपलब्ध हो; अन्यथा QEMU TCG पर वापस चला जाता है।
UBUNTU_VERSION=26.04 \
VM_EXPECTED_KERNEL=7.0.0-31-generic \
./vm/build_image.sh
बिल्डर चयनित Ubuntu रिलीज़ क्लाउड इमेज डाउनलोड करता है, इसे Ubuntu के प्रकाशित SHA256SUMS के विरुद्ध सत्यापित करता है, पैकेज अपडेट और Docker इंस्टॉल करता है, मेल खाती Ubuntu कंटेनर इमेज खींचता है, और vm/ubuntu-<version>.qcow2 लिखता है।
डिफ़ॉल्ट URL 16 सितंबर, 2026 को उपलब्ध नवीनतम आधिकारिक रिलीज़ इमेजों पर पिन किए गए हैं:
2026091120260823किसी अन्य रिलीज़ का उपयोग करने के लिए UBUNTU_RELEASE_URL, UBUNTU_IMAGE_URL, या UBUNTU_SUMS_URL सेट करें।
उत्पन्न qcow2 इमेज और SSH कुंजी स्थानीय आर्टिफ़ैक्ट हैं जिन्हें Git द्वारा अनदेखा किया जाता है। निजी कुंजी मोड 0600 पर बनी रहती है।
UBUNTU_VERSION=26.04 \
VM_EXPECTED_KERNEL=7.0.0-31-generic \
./vm/run_container.sh ./path/to/binary [arguments...]
प्रत्येक रन एक अस्थायी qcow2 ओवरले बनाता है, गेस्ट को बूट करता है, SSH के माध्यम से बाइनरी को कॉपी करता है, और इसे नेटवर्किंग अक्षम के साथ एक नए कंटेनर में लॉन्च करता है। आर्ग्युमेंट, मानक स्ट्रीम, और एग्ज़िट स्टेटस अग्रेषित किए जाते हैं।
एक नए कंटेनर में इंटरैक्टिव शेल खोलने के लिए बाइनरी के बिना चलाएँ:
./vm/run_container.sh
बाइनरी को गेस्ट में कॉपी करने और इसे निष्पादित किए बिना /payload पर माउंट करने के लिए बाइनरी के साथ --shell का उपयोग करें:
./vm/run_container.sh --shell ./path/to/binary
उपयोगी ओवरराइड:
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 ओवरले और लॉग को /tmp/ubuntu-container.* के अंतर्गत बनाए रखता है। प्रत्येक आह्वान एक VM बूट और एक पेलोड प्रयास करता है। ऐसे पेलोड के लिए VM_PAYLOAD_CONSOLE=1 सेट करें जो स्पष्ट रूप से गेस्ट के दूसरे सीरियल पोर्ट का उपयोग करता है।