
استغلالات إثبات مفهوم للهروب من الحاويات لـ CVE-2026-80521 و CVE-2026-52910، مع بيئة QEMU/Ubuntu VM قابلة للتخلص منها لتنفيذ PoC بأمان.
يقوم هذا الدليل ببناء وتشغيل حاوية Docker لـ Ubuntu داخل ضيف QEMU مؤقت يعمل بنظام Ubuntu. تُنسخ إثباتات المفهوم (PoCs) إلى الضيف ولا تُنفَّذ أبدًا بواسطة سكربتات المضيف.
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 المحدد، والتحقق منها مقابل SHA256SUMS المنشورة من Ubuntu، وتثبيت تحديثات الحزم و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
استخدم --shell مع ملف ثنائي لنسخه إلى الضيف وتثبيته على /payload دون تنفيذه:
./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_PAYLOAD_CONSOLE=1 لحمولة تستخدم صراحةً منفذ التسلسل الثاني للضيف.