Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
vbox-lsilogic-sas-config — VirtualBox 7.2.20 - Critico - Locale - Type confusion / arb R/W - SAS1068 CONFIG SCSI-SPI overlay | Kitploit
Strumenti/GitHubGitHub/abraxas/vbox-lsilogic-sas-config
Memory ForensicsAnalisi delle VulnerabilitàExploitReverse EngineeringVirtualizzazione per la SicurezzaPaper e RicercaBinary Exploitation
GitHub

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
abraxas/vbox-lsilogic-sas-config

vbox-lsilogic-sas-config

VirtualBox 7.2.20 - Critico - Locale - Type confusion / arb R/W - SAS1068 CONFIG SCSI-SPI overlay

Vedi Repository
113 giorni faNon ancora revisionato

Abraxas Labs - vbox-lsilogic-sas-config

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

vbox-lsilogic-sas-config

Classe: Type confusion / arb R/W Raggiungibilità: Locale (guest)

Oracle VM VirtualBox OSS 7.2.20 (f2792cf44f663989818507e36d3db5f978523c5e)

SAS1068 MPT CONFIG tratta la SCSI-SPI Port 0 come una pagina da 12 byte. Su SAS quella pagina è l'altra metà di una union: pManufacturingPage7 più cbManufacturingPage7. Un CONFIG READ del guest effettua un DMA-leak del puntatore heap. Un CONFIG WRITE inserisce puntatore e dimensione. La manufacturing page 7 copia poi attraverso il puntatore inserito.

Il ring3 del guest su un SAS1068 collegato (PDM LsiLogicSas, PCI 1000:0054) ottiene lettura/scrittura arbitraria nel processo della VM. Si tratta dell'heap di VirtualBoxVM / VBoxHeadless, non di un'evasione dal kernel host.

IDnessuna CVE al momento
ClasseType confusion / arb R/W
RaggiungibilitàLocale (guest)
CWECWE-843, CWE-822
CVSSCritico: 8.8 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
ProdottoVirtualBox OSS
Affetto7.2.20 (f2792cf44)
RichiedeSAS1068 collegato (PDM LsiLogicSas, PCI 1000:0054)
LicenzaGNU Affero GPL v3.0
Labharness sorgente in loopback

Cosa può fare un attaccante

Metodo: il ring3 del guest programma il doorbell MMIO o la request FIFO del SAS1068 con MPT_MESSAGE_HDR_FUNCTION_CONFIG (0x04), page type SCSI-SPI Port 0 (0x03). Il dispatch chiama sempre il getter SPI. Solo EXTENDED è vincolato a SAS. Il getter degli attributi di pagina è commentato, quindi la pagina Readonly Port 0 è comunque scrivibile. SPI Port 0 è impacchettata in 12 byte e si sovrappone a SasPages.pManufacturingPage7 (8) più cbManufacturingPage7 (4).

PrivilegioTipoStatoCosa concede
CONFIG SCSI-SPI Port 0 READricognizionedimostrato in labDMA del puntatore heap del processo VM pManufacturingPage7 e della sua dimensione nella RAM del guest. Input per ASLR.
CONFIG SCSI-SPI Port 0 WRITEintegritàdimostrato in labinserisce puntatore e dimensione scelti dal guest sopra quei campi SAS
manufacturing page 7 CONFIG READintegritàdimostrato in labcopia byte host dall'indirizzo inserito nella GPA del guest (VBOX-LSILOGIC-SAS-CONFIG-WITNESS)
manufacturing page 7 CONFIG WRITEintegritàdedotto dallo stesso gettercopia byte del guest all'indirizzo inserito (scrittura arbitraria in VirtualBoxVM)
pagine SPI Port 1 / Device 0ricognizione / integritàsovrapposizione dedottaPort 1 fa leak/inserisce pSASIOUnitPage0; Device 0 page 0 colpisce paPHYs; Device 0 page 1 colpisce pSASDeviceHead
puntatore inserito arbitrariodisponibilitàdedottomanda in crash il processo VM al successivo accesso a una pagina SAS o su lsilogicR3ConfigurationPagesFree

Escluso adiacente:

  • kernel host
  • altre VM
  • VBoxSVC
  • LSI53C1030 SPI predefinito del guest Windows (SpiPages è il layout reale; questa type confusion richiede SAS1068)
  • pagine SAS EXTENDED su un controller SPI (VERR_NOT_FOUND)
  • token di hardening Windows / AppContainer (questo è heap del processo VM, non un bypass del sandbox)

Questa è scrittura/lettura arbitraria nel processo VM, non evasione dal kernel host. Per ottenere l'utente host completo serve comunque un residuo di hardening. Non l'ho abbinata a una scrittura 3D rimanente: la UAF VMSVGA DX11 (d691aa68) è chiusa su questo pin.

Nessuna Guest Additions. Nessun 3D. Nessun VRDP. Non PUEL. Basta un ring3 ostile nel guest; il driver mpt/mptsas in-box non è necessario.

Come l'ho trovato

Mi sono basato su OSS 7.2.20 dopo la CPU di settembre 2026 e ho analizzato LsiLogic MPT CONFIG. La perdita silenziosa del reply-stack del 2026 è già chiusa: 122c6880 esegue RT_ZERO su MptReplyUnion in caso di errore I/O SCSI. Stavo cercando un residuo di quella classe, non quel sink.

Il residuo è una union, non una reply sullo stack:

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

SAS alloc riempie i puntatori host di SasPages e non esegue mai l'inizializzazione della pagina SPI. Il getter della porta SPI in DevLsiLogicSCSI.cpp:2795 non ha alcun controllo su enmCtrlType. I casi SPI del dispatch CONFIG non sono vincolati. Il getter degli attributi di pagina è commentato in cpp:3159. La pagina Manufacturing 7 in cpp:2701 è vincolata a SAS, che è il percorso previsto, e dereferenzia pManufacturingPage7 senza controllo NULL. È così che un READ/WRITE di Port 0 di tipo SPI diventa una fuga e un impianto di puntatori SAS.

Vicoli ciechi già registrati: rifilare 122c6880; trattare l'LSI53C1030 predefinito come questo bug; gonfiare un crash da puntatore selvaggio fino a un'evasione dal kernel host; una VM live quando l'overlay impacchettato è sufficiente. Teatro: una reverse shell. L'oracolo sono i dati della pagina fittizia CONTROL, poi leak/plant/arb-read di VBOX-LSILOGIC-SAS-CONFIG-WITNESS.

Lab

cd lab
./run.sh

Oppure python3 vbox-lsilogic-sas-config-Abraxas-Labs.py. Harness sorgente delle strutture pin. VirtualBox non è avviato. Progetto Compose vbox-lsilogic-sas-config, network_mode: none. Nessun bind.

CONTROL: la lettura overlay di Port 0 di tipo SPI è costituita da dati di pagina fittizi, non dal puntatore heap della manufacturing-page-7.

SAS confuso: la READ di Port 0 rivela pManufacturingPage7 corrispondente a calloc. La WRITE di Port 0 inserisce un secondo buffer testimone puntatore+dimensione. Il getter della manufacturing page 7 insieme alla READ di CONFIG copia il testimone nell'array GPA del guest.

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

La correzione

Filtra i tipi di pagina SCSI-SPI in base a enmCtrlType == LSILOGICCTRLTYPE_SCSI_SPI. Ripristina il controllo degli attributi di pagina in modo che Readonly Port 0 rimanga di sola lettura. Verifica NULL su pManufacturingPage7 (e sugli altri puntatori SAS) prima della dereferenziazione. Interrompi la sovrapposizione di SpiPages e SasPages in un'unica union.

Riferimenti

Scarica lo strumento