Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
qemu-xhci-complete-uaf — QEMU 11.1.2 - Alta - Local - UAF - xhci_complete remanente de CVE-2026-17588 doorbell DMA | Kitploit
Herramientas/GitHubGitHub/abraxas/qemu-xhci-complete-uaf
Forensia de MemoriaAnálisis de VulnerabilidadesExplotaciónPapers e InvestigaciónExplotación de BinariosLabs y Práctica
GitHubabraxas/qemu-xhci-complete-uaf

qemu-xhci-complete-uaf

QEMU 11.1.2 - Alta - Local - UAF - xhci_complete remanente de CVE-2026-17588 doorbell DMA

Ver Repositorio
8hace 2 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

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

Clase: UAF (use-after-free en el heap). Alcance: Local (invitado).

xhci_complete es el remanente de CVE-2026-17588. El parche de 11.1.2 protege los dos temporizadores de xHCI. No protege la ruta de finalización asíncrona de USB. Un invitado que apunta el anillo de eventos al BAR de doorbell todavía consigue que se escriba por DMA un TRB de 16 bytes en el doorbell 0 desde xhci_complete, con el mem_reentrancy_guard de TYPE_XHCI ya despejado. Esa escritura ejecuta xhci_process_commands. Un CR_DISABLE_SLOT preparado libera el XHCITransfer activo mientras xhci_complete todavía lo mantiene.

q35 incluye qemu-xhci. El dispositivo bulk asociado en este laboratorio es usb-uas. El mismo callback de finalización es alcanzable desde usb-storage, usb-redir y usb-host.

Un kernel invitado sobre qemu-xhci más un dispositivo bulk asíncrono puede provocar un UAF en el heap del proceso QEMU.

IDaún sin CVE
CWECWE-416
CVSSAlto: 8.2 CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
ProductoQEMU
Afectadov11.1.2 (4fc49f46)
Autenticaciónkernel invitado sobre qemu-xhci (predeterminado en q35) más bulk USB_RET_ASYNC
LicenciaGNU Affero GPL v3.0
Laboratorio127.0.0.1:18700 solo qtest

Qué puede hacer un atacante

Quién: kernel invitado no confiable (o par de passthrough USB). De invitado a host. Heap del espacio de usuario de QEMU.

Integridad (demostrado en laboratorio)

MétodoDestinoPrivilegio
ERST / ERDP del invitado en el BAR de doorbell, luego finalización asíncrona de UASxhci_complete hw/usb/hcd-xhci.c:3282-3295 -> DMA de xhci_write_eventheap-use-after-free bajo ASan de XHCITransfer mientras la finalización externa todavía lo mantiene. CR_DISABLE_SLOT obtenido desde la reentrada del doorbell.
Misma ruta, xhci_ep_nuke_xfers / xhci_ep_free_xferg_free(xfer)Liberación de la transferencia activa y del contexto del endpoint. Doble liberación si la finalización vuelve a liberar.

Disponibilidad (demostrado en laboratorio)

Aborto del proceso QEMU bajo ASan. Sin ASan esto es un UAF en el heap activo dentro del proceso del hipervisor: caída de invitado a host, y reutilización inferida del XHCITransfer liberado.

Reconocimiento

No se requiere nada más allá de enumerar qemu-xhci. El predeterminado de q35 lo incluye.

Superficie adyacente que permanece cerrada

  • Ruta de temporizadores de CVE-2026-17588: xhci_mfwrap_timer y xhci_ep_kick_timer establecen xhci->parent.mem_reentrancy_guard. Cerrada en esta versión fijada.
  • Finalización asíncrona de EHCI: marca FINISHED y programa un BH protegido. No escribe el anillo de eventos desde el callback de finalización de USB.
  • UAF del objeto UAS (clase CVE-2021-3713): el BH de estado está protegido sobre el DeviceState de UAS. El remanente es el objeto xHCI vía DMA del anillo de eventos, no un n-day de 2021 del objeto UAS.
  • Reintento de NAK de HID: ese es el temporizador de kick, ahora protegido.
  • Asserts de root invitado y asignación RNDIS sin límite: endurecimiento, no esta clase.

El laboratorio no demuestra control de RIP ni una shell de invitado a host. La clase es UAF en el heap del proceso QEMU.

Cómo lo encontré

Fijé v11.1.2 porque es la GA actual y la etiqueta que cerró CVE-2026-17588. Me detuve en hw/usb/hcd-xhci.c y me pregunté qué escritores del anillo de eventos pasó por alto el parche.

Los temporizadores toman el guard de TYPE_XHCI. xhci_complete no. EHCI ya difirió esta clase a un BH en 2021. xHCI todavía escribe por DMA desde el callback de finalización de USB.

Errores de enfoque: considerar suficiente el estado BH de UAS (protege UAS, no xHCI); esperar el NAK de HID (temporizador, ya parcheado); querer un kernel invitado real en lugar de qtest doorbell + usb-uas.

Laboratorio

cd lab
./run.sh

Dirígete solo a 127.0.0.1:18700 (qtest) y 127.0.0.1:18701 (QMP). Pin se clona desde github.com/qemu/QEMU tag v11.1.2 / 4fc49f46. Compilación ASan. Loopback. Solo testigo.

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

Reproducción: python3 qemu-xhci-complete-uaf-Abraxas-Labs.py.

La corrección

Emplear xhci->parent.mem_reentrancy_guard durante todo xhci_complete, de la misma manera que ya lo hacen los dos temporizadores. O diferir xhci_try_complete_packet / xhci_kick_epctx a un BH protegido por TYPE_XHCI, igual que EHCI. En cualquier caso, la escritura por DMA en el anillo de eventos no debe ejecutarse con el guard desactivado.

Referencias

  • github.com/qemu/QEMU etiqueta v11.1.2 commit 4fc49f46dc95d4a27de2509e7fceb2931e91faeb
  • xhci_complete
  • Cercano parcheado (no esta ruta): CVE-2026-17588 reentrada del temporizador xHCI
  • Mismo pin: qemu-nvme-sgl-bar · qemu-colo-l4-oob
  • Serie: QEMU 11.1.2 leftovers
  • CWE-416

Licencia

GNU Affero GPL v3.0. Véase LICENSE. Solo laboratorio de loopback. Sin garantía.

Descargar herramienta