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
vbox-lsilogic-sas-config — VirtualBox 7.2.20 - Crítico - Local - Confusión de tipos / lectura/escritura arbitraria - Superposición SCSI-SPI de CONFIG en SAS1068 | Kitploit
Herramientas/GitHubGitHub/abraxas/vbox-lsilogic-sas-config
Forensia de MemoriaAnálisis de VulnerabilidadesExplotaciónIngeniería InversaVirtualización de SeguridadPapers e InvestigaciónExplotación de Binarios
GitHub

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/vbox-lsilogic-sas-config

vbox-lsilogic-sas-config

VirtualBox 7.2.20 - Crítico - Local - Confusión de tipos / lectura/escritura arbitraria - Superposición SCSI-SPI de CONFIG en SAS1068

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

Abraxas Labs - vbox-lsilogic-sas-config

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  vbox-lsilogic-sas-config

vbox-lsilogic-sas-config

Clase: Confusión de tipos / lectura/escritura arbitraria Alcance: Local (invitado)

Oracle VM VirtualBox OSS 7.2.20 (f2792cf44f663989818507e36d3db5f978523c5e)

SAS1068 MPT CONFIG trata el puerto SCSI-SPI 0 como una página de 12 bytes. En SAS esa página es la otra mitad de una unión: pManufacturingPage7 más cbManufacturingPage7. Un CONFIG READ del invitado filtra por DMA el puntero del heap. Un CONFIG WRITE implanta el puntero y el tamaño. La página de fabricación 7 luego copia a través del puntero implantado.

El ring3 del invitado sobre un SAS1068 conectado (PDM LsiLogicSas, PCI 1000:0054) obtiene lectura/escritura arbitraria en el proceso de la VM. Eso es el heap de VirtualBoxVM / VBoxHeadless, no un escape al kernel del host.

IDaún sin CVE
ClaseConfusión de tipos / lectura/escritura arbitraria
AlcanceLocal (invitado)
CWECWE-843, CWE-822
CVSSCrítico: 8.8 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
ProductoVirtualBox OSS
Afectado7.2.20 (f2792cf44)
RequiereSAS1068 conectado (PDM LsiLogicSas, PCI 1000:0054)
LicenciaGNU Affero GPL v3.0
Laboratorioarnés de código fuente en loopback

Qué puede hacer un atacante

Método: el ring3 del invitado programa el doorbell MMIO del SAS1068 o la FIFO de peticiones con MPT_MESSAGE_HDR_FUNCTION_CONFIG (0x04), tipo de página SCSI-SPI Port 0 (0x03). El despacho siempre llama al getter de SPI. Solo EXTENDED está condicionado a SAS. El getter de atributos de página está comentado, por lo que la página Readonly Port 0 sigue siendo escribible. SPI Port 0 está empaquetado en 12 bytes y se superpone a SasPages.pManufacturingPage7 (8) más cbManufacturingPage7 (4).

PrivilegioTipoEstadoQué otorga
CONFIG SCSI-SPI Port 0 READreconocimientoprobado en laboratorioDMA del puntero del heap del proceso de la VM pManufacturingPage7 y su tamaño hacia la RAM del invitado. Entrada para ASLR.
CONFIG SCSI-SPI Port 0 WRITEintegridadprobado en laboratorioimplanta un puntero y tamaño elegidos por el invitado sobre esos campos SAS
manufacturing page 7 CONFIG READintegridadprobado en laboratoriocopia bytes del host desde la dirección implantada hacia el GPA del invitado (VBOX-LSILOGIC-SAS-CONFIG-WITNESS)
manufacturing page 7 CONFIG WRITEintegridadinferido del mismo gettercopia bytes del invitado hacia la dirección implantada (escritura arbitraria en VirtualBoxVM)
páginas SPI Port 1 / Device 0reconocimiento / integridadsuperposición inferidaPort 1 filtra/implanta pSASIOUnitPage0; Device 0 page 0 alcanza paPHYs; Device 0 page 1 alcanza pSASDeviceHead
puntero implantado arbitrariodisponibilidadinferidoprovoca un fallo del proceso de la VM en el siguiente acceso a página SAS o en lsilogicR3ConfigurationPagesFree

Adyacentes descartados:

  • kernel del host
  • otras VMs
  • VBoxSVC
  • LSI53C1030 SPI por defecto en invitados Windows (SpiPages es el diseño real; esta confusión de tipos necesita SAS1068)
  • páginas SAS EXTENDED en un controlador SPI (VERR_NOT_FOUND)
  • token de endurecimiento de Windows / AppContainer (esto es el heap del proceso de la VM, no un bypass del sandbox)

Esto es lectura/escritura arbitraria en el proceso de la VM, no un escape al kernel del host. El usuario completo del host aún requiere un remanente de endurecimiento. No lo emparejé con una escritura 3D restante: el UAF de VMSVGA DX11 (d691aa68) está cerrado en este pin.

Sin Guest Additions. Sin 3D. Sin VRDP. No es PUEL. Basta con el ring3 del invitado hostil; no se requiere el controlador mpt/mptsas incluido.

Cómo lo encontré

Me senté sobre OSS 7.2.20 después del CPU de septiembre de 2026 y recorrí LsiLogic MPT CONFIG. La fuga silenciosa de la pila de respuestas de 2026 ya está cerrada: 122c6880 aplica RT_ZERO a MptReplyUnion en errores de E/S de SCSI. Estaba buscando un remanente de esa clase, no ese sumidero.

El remanente es una unión, no una respuesta de pila:

union {
    MptConfigurationPagesSpi SpiPages;
    MptConfigurationPagesSas SasPages;
} u;  /* DevLsiLogicSCSI.h:3323 */

SAS alloc rellena los punteros de host SasPages y nunca ejecuta la inicialización de página SPI. El getter de puerto SPI en DevLsiLogicSCSI.cpp:2795 no tiene comprobación de enmCtrlType. Los casos SPI del despacho CONFIG no están restringidos. El getter de atributo de página está comentado en cpp:3159. La página de fabricación 7 en cpp:2701 está restringida a SAS, que es la ruta prevista, y desreferencia pManufacturingPage7 sin comprobación de NULL. Así es como un READ/WRITE de Port 0 de tipo SPI se convierte en una fuga y plantación de puntero SAS.

Falsos caminos ya registrados: volver a presentar 122c6880; tratar el LSI53C1030 por defecto como este bug; inflar un crash de puntero salvaje a escape del kernel anfitrión; una VM en vivo cuando el overlay empaquetado es suficiente. Teatro: una reverse shell. El oráculo son los datos de la página dummy CONTROL, luego fuga/plantación/lectura arbitraria de VBOX-LSILOGIC-SAS-CONFIG-WITNESS.

Laboratorio

cd lab
./run.sh

O python3 vbox-lsilogic-sas-config-Abraxas-Labs.py. Arnés de origen de las estructuras pin. VirtualBox no está arrancado. Proyecto Compose vbox-lsilogic-sas-config, network_mode: none. No enlazar nada.

CONTROL: la lectura de superposición del Puerto 0 de tipo SPI son datos de página ficticios, no el puntero del heap de la página de fabricación 7.

SAS confundido: la LECTURA del Puerto 0 filtra pManufacturingPage7 coincidiendo con calloc. La ESCRITURA del Puerto 0 implanta un segundo puntero de búfer testigo+tamaño. El getter de la página de fabricación 7 junto con la LECTURA de CONFIG copia el testigo en el arreglo GPA del invitado.

SUCCESS vbox-lsilogic-sas-config leak=yes plant=yes arb-read=yes VBOX-LSILOGIC-SAS-CONFIG-WITNESS

La solución

Condicionar los tipos de página SCSI-SPI a enmCtrlType == LSILOGICCTRLTYPE_SCSI_SPI. Restaurar la comprobación de atributos de página para que el puerto 0 de solo lectura permanezca como solo lectura. Comprobar si es NULL pManufacturingPage7 (y los demás punteros SAS) antes de desreferenciarlos. Dejar de superponer SpiPages y SasPages en una sola unión.

Referencias

Descargar herramienta