Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
qemu-xhci-complete-uaf — QEMU 11.1.2 - عالية الخطورة - محلية - UAF - xhci_complete المتبقي من CVE-2026-17588 doorbell DMA | Kitploit
أدوات/GitHubGitHub/abraxas/qemu-xhci-complete-uaf
تحليل الذاكرة الجنائيتحليل الثغرات الأمنيةالاستغلالالأوراق والأبحاثاستغلال الملفات الثنائيةمختبرات وتدريب عملي
GitHubabraxas/qemu-xhci-complete-uaf

qemu-xhci-complete-uaf

QEMU 11.1.2 - عالية الخطورة - محلية - UAF - xhci_complete المتبقي من CVE-2026-17588 doorbell DMA

عرض المستودع
8منذ 2 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

Abraxas Labs - qemu-xhci-complete-uaf

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  qemu-xhci-complete-uaf

qemu-xhci-complete-uaf

QEMU v11.1.2 (4fc49f46dc95d4a27de2509e7fceb2931e91faeb) - qemu-xhci

الفئة: UAF (استخدام بعد التحرير في الكومة). الوصول: محلي (من الضيف).

xhci_complete هو ما تبقّى من CVE-2026-17588. تُحصّن رقعة 11.1.2 مؤقّتي xHCI. لكنها لا تحصّن مسار إكمال USB غير المتزامن. الضيف الذي يوجّه حلقة الأحداث نحو نافذة doorbell BAR لا يزال يحصل على TRB بحجم 16 بايت يُكتب عبر DMA في doorbell 0 من xhci_complete، بينما يكون mem_reentrancy_guard الخاص بـ TYPE_XHCI قد أُفرغ بالفعل. هذا الكتابة تُشغّل xhci_process_commands. أمر CR_DISABLE_SLOT المُعدّ مسبقًا يحرّر XHCITransfer الحيّ بينما لا يزال xhci_complete ممسكًا به.

يوفّر q35 منفذ qemu-xhci. الشريك الكتلي في هذا المختبر هو usb-uas. يمكن الوصول إلى نفس دالة الإكمال من usb-storage وusb-redir وusb-host.

نواة ضيف على qemu-xhci مع جهاز كتلي غير متزامن يمكنها إحداث UAF في كومة عملية QEMU.

المعرّفلا يوجد CVE بعد
CWECWE-416
CVSSعالٍ: 8.2 CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
المنتجQEMU
المتأثرv11.1.2 (4fc49f46)
المصادقةنواة ضيف على qemu-xhci (افتراضي في q35) مع USB_RET_ASYNC كتلي
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1:18700 qtest فقط

ما يمكن للمهاجم فعله

من: نواة ضيف غير موثوقة (أو نظير تمرير USB). من الضيف إلى المضيف. كومة مساحة المستخدم في QEMU.

السلامة (مُثبتة في المختبر)

الطريقةالمَصبّالامتياز
ERST / ERDP الخاص بالضيف عند doorbell BAR، ثم إكمال UAS غير متزامنxhci_complete hw/usb/hcd-xhci.c:3282-3295 -> xhci_write_event DMAASan heap-use-after-free لـ XHCITransfer بينما لا يزال الإكمال الخارجي ممسكًا به. يُجلب CR_DISABLE_SLOT من إعادة الدخول عبر doorbell.
نفس المسار، xhci_ep_nuke_xfers / xhci_ep_free_xferg_free(xfer)تحرير النقل الحيّ وسياق نقطة النهاية. تحرير مزدوج إذا أكمل ثم حرّر مرة أخرى.

التوفّر (مُثبت في المختبر)

إجهاض عملية QEMU تحت ASan. بدون ASan يكون هذا UAF حيًّا في كومة عملية hypervisor: انهيار من الضيف إلى المضيف، واستنتاج إعادة استخدام XHCITransfer المحرَّر.

الاستطلاع

لا شيء مطلوب عدا تعداد qemu-xhci. الافتراضي في q35 يتضمنه.

السطح المجاور الذي يبقى مغلقًا

  • مسار المؤقّت CVE-2026-17588: xhci_mfwrap_timer وxhci_ep_kick_timer يضبطان xhci->parent.mem_reentrancy_guard. مغلق على هذا الإصدار المثبّت.
  • إكمال EHCI غير المتزامن: يعلّم FINISHED ويجدول BH محميًّا. لا يكتب حلقة الأحداث من دالة إكمال USB.
  • UAF كائن UAS (فئة CVE-2021-3713): BH الحالة محمي على DeviceState الخاص بـ UAS. المتبقي هو كائن xHCI عبر DMA حلقة الأحداث، وليس ثغرة n-day من 2021 لكائن UAS.
  • إعادة محاولة HID NAK: ذلك هو مؤقّت kick، المحمي الآن.
  • تأكيدات جذر الضيف والتخصيص غير المحدود لـ RNDIS: تحصين، وليس هذه الفئة.

لا يُظهر المختبر التحكم في RIP أو صدفة من الضيف إلى المضيف. الفئة هي UAF في كومة عملية QEMU.

كيف وجدتها

ثبّتت v11.1.2 لأنها الإصدار GA الحالي والوسم الذي أغلق CVE-2026-17588. جلست على hw/usb/hcd-xhci.c وسألت أي كتّاب حلقة الأحداث فاتتهم الرقعة.

المؤقّتان يأخذان حارس TYPE_XHCI. xhci_complete لا يفعل. EHCI سبق أن أجّل هذه الفئة إلى BH في 2021. لا يزال xHCI يكتب DMA من دالة إكمال USB.

المنعطفات الخاطئة: اعتبار حالة UAS BH كافية (فهي تحمي UAS، وليس xHCI)؛ الانتظار على HID NAK (مؤقت، تم ترقيعه بالفعل)؛ الرغبة في نواة ضيف حقيقية بدلاً من qtest doorbell + usb-uas.

المختبر

cd lab
./run.sh

استهدف فقط 127.0.0.1:18700 (qtest) و127.0.0.1:18701 (QMP). يتم استنساخ Pin من github.com/qemu/QEMU وسم v11.1.2 / 4fc49f46. بناء ASan. Loopback. Witness-only.

SUCCESS qemu-xhci-complete-uaf how=ERROR: AddressSanitizer: heap-use-after-free erst=doorbell async=1 success=1 disable-slot-fetch=1 QEMU-XHCI-COMPLETE-UAF-WITNESS

إعادة التشغيل: python3 qemu-xhci-complete-uaf-Abraxas-Labs.py.

الإصلاح

فعّل xhci->parent.mem_reentrancy_guard طوال تنفيذ xhci_complete، بالطريقة نفسها التي تتبعها المؤقتان بالفعل. أو أجّل xhci_try_complete_packet / xhci_kick_epctx إلى BH محمي بـ TYPE_XHCI، بما يطابق EHCI. في كلتا الحالتين، يجب ألا يعمل الكتابة عبر DMA إلى حلقة الأحداث بينما الحارس غير مفعّل.

المراجع

  • github.com/qemu/QEMU وسم v11.1.2 commit 4fc49f46dc95d4a27de2509e7fceb2931e91faeb
  • xhci_complete
  • قريب ومُرقَّع (ليس هذا المسار): CVE-2026-17588 إعادة دخول مؤقت xHCI
  • نفس التثبيت: qemu-nvme-sgl-bar · qemu-colo-l4-oob
  • السلسلة: QEMU 11.1.2 leftovers
  • CWE-416

الترخيص

GNU Affero GPL v3.0. راجع LICENSE. مختبر loopback فقط. دون أي ضمان.

تنزيل الأداة