Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
vbox-lsilogic-sas-config — VirtualBox 7.2.20 - Critique - Local - Confusion de types / lecture-écriture arbitraire - Superposition SAS1068 CONFIG SCSI-SPI | Kitploit
Outils/GitHubGitHub/abraxas/vbox-lsilogic-sas-config
Criminalistique MémoireAnalyse des VulnérabilitésExploitationRétro-ingénierieVirtualisation de SécuritéArticles et RechercheExploitation de Binaires
GitHub

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
abraxas/vbox-lsilogic-sas-config

vbox-lsilogic-sas-config

VirtualBox 7.2.20 - Critique - Local - Confusion de types / lecture-écriture arbitraire - Superposition SAS1068 CONFIG SCSI-SPI

Voir le dépôt
11il y a 3 joursPas encore vérifié

Abraxas Labs - vbox-lsilogic-sas-config

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

vbox-lsilogic-sas-config

Classe : confusion de types / lecture-écriture arbitraire Portée : locale (invité)

Oracle VM VirtualBox OSS 7.2.20 (f2792cf44f663989818507e36d3db5f978523c5e)

La commande CONFIG du SAS1068 MPT traite le port SCSI-SPI 0 comme une page de 12 octets. Sur SAS, cette page constitue l'autre moitié d'une union : pManufacturingPage7 plus cbManufacturingPage7. Un CONFIG READ de l'invité divulgue le pointeur du tas par DMA. Un CONFIG WRITE implante le pointeur et la taille. La page Manufacturing 7 copie ensuite via le pointeur implanté.

Un ring3 invité sur un SAS1068 attaché (PDM LsiLogicSas, PCI 1000:0054) obtient une lecture/écriture arbitraire dans le processus de la VM. Il s'agit du tas de VirtualBoxVM / VBoxHeadless, et non d'une évasion vers le noyau hôte.

IDaucun CVE pour l'instant
Classeconfusion de types / lecture-écriture arbitraire
Portéelocale (invité)
CWECWE-843, CWE-822
CVSSCritique : 8.8 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
ProduitVirtualBox OSS
Affecté7.2.20 (f2792cf44)
Nécessiteun SAS1068 attaché (PDM LsiLogicSas, PCI 1000:0054)
LicenceGNU Affero GPL v3.0
Laboharnais source en boucle locale

Ce qu'un attaquant peut faire

Méthode : un ring3 invité programme le doorbell MMIO du SAS1068 ou la FIFO de requêtes avec MPT_MESSAGE_HDR_FUNCTION_CONFIG (0x04), type de page SCSI-SPI Port 0 (0x03). Le dispatch appelle toujours le getter SPI. Seul EXTENDED est conditionné à SAS. Le getter d'attribut de page est commenté, donc la page Readonly Port 0 reste inscriptible. SPI Port 0 est compacté sur 12 octets et recouvre SasPages.pManufacturingPage7 (8) plus cbManufacturingPage7 (4).

PrivilègeTypeStatutCe qu'il accorde
CONFIG SCSI-SPI Port 0 READreconnaissanceprouvé en laboDMA du pointeur de tas du processus VM pManufacturingPage7 et de sa taille dans la RAM de l'invité. Entrée pour l'ASLR.
CONFIG SCSI-SPI Port 0 WRITEintégritéprouvé en laboimplante un pointeur et une taille choisis par l'invité par-dessus ces champs SAS
CONFIG READ de la page manufacturing 7intégritéprouvé en labocopie des octets hôtes depuis l'adresse implantée vers le GPA de l'invité (VBOX-LSILOGIC-SAS-CONFIG-WITNESS)
CONFIG WRITE de la page manufacturing 7intégritédéduit du même gettercopie des octets de l'invité vers l'adresse implantée (écriture arbitraire dans VirtualBoxVM)
pages SPI Port 1 / Device 0reconnaissance / intégritérecouvrement déduitPort 1 divulgue/implante pSASIOUnitPage0 ; Device 0 page 0 touche paPHYs ; Device 0 page 1 touche pSASDeviceHead
pointeur implanté sauvagedisponibilitédéduitfait planter le processus VM au prochain accès à une page SAS ou sur lsilogicR3ConfigurationPagesFree

Voisins exclus :

  • noyau hôte
  • autres VM
  • VBoxSVC
  • SPI LSI53C1030 par défaut d'un invité Windows (SpiPages est la disposition réelle ; cette confusion de types nécessite un SAS1068)
  • pages SAS EXTENDED sur un contrôleur SPI (VERR_NOT_FOUND)
  • jeton de durcissement Windows / AppContainer (il s'agit du tas du processus VM, pas d'un contournement de sandbox)

Il s'agit d'une lecture/écriture arbitraire dans le processus VM, pas d'une évasion vers le noyau hôte. Un accès utilisateur hôte complet nécessite encore un reste de durcissement. Je ne l'ai pas apparié avec une écriture 3D restante : l'UAF VMSVGA DX11 (d691aa68) est corrigé sur ce commit.

Pas de Guest Additions. Pas de 3D. Pas de VRDP. Pas de PUEL. Un ring3 invité hostile suffit ; le pilote mpt/mptsas intégré n'est pas requis.

Comment je l'ai trouvé

Je me suis penché sur OSS 7.2.20 après le CPU de septembre 2026 et j'ai parcouru LsiLogic MPT CONFIG. La fuite silencieuse de la pile de réponses de 2026 est déjà corrigée : 122c6880 applique RT_ZERO à MptReplyUnion en cas d'erreur d'E/S SCSI. Je cherchais un résidu de cette classe, pas ce point de fuite.

Le résidu est une union, pas une réponse sur la pile :

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

SAS alloc remplit les pointeurs d'hôte SasPages et n'exécute jamais l'initialisation de page SPI. Le getter de port SPI à DevLsiLogicSCSI.cpp:2795 n'a aucune vérification enmCtrlType. Les cas SPI de dispatch CONFIG ne sont pas conditionnés. Le getter d'attribut de page est commenté à cpp:3159. La page de fabrication 7 à cpp:2701 est conditionnée SAS, ce qui est le chemin prévu, et déréférence pManufacturingPage7 sans vérification NULL. C'est ainsi qu'un READ/WRITE de Port 0 de type SPI devient une fuite de pointeur SAS et un plant.

Fausses pistes déjà consignées : re-déposer 122c6880 ; traiter le LSI53C1030 par défaut comme ce bug ; gonfler un crash de pointeur sauvage en évasion vers le noyau hôte ; une VM live alors que l'overlay compacté suffit. Théâtre : un reverse shell. L'oracle est la donnée de page factice CONTROL, puis la fuite/plant/lecture arbitraire de VBOX-LSILOGIC-SAS-CONFIG-WITNESS.

Lab

cd lab
./run.sh

Ou python3 vbox-lsilogic-sas-config-Abraxas-Labs.py. Harnais source des structures de pin. VirtualBox n'est pas démarré. Projet Compose vbox-lsilogic-sas-config, network_mode: none. Ne lier rien.

CONTRÔLE : la lecture de superposition du Port 0 typé SPI correspond à des données de page factices, et non au pointeur de tas de la page de fabrication 7.

SAS confus : la LECTURE du Port 0 divulgue pManufacturingPage7 correspondant à calloc. L'ÉCRITURE du Port 0 implante un second pointeur de tampon témoin + taille. Le getter de la page de fabrication 7 plus la LECTURE CONFIG copie le témoin dans le tableau GPA de l'invité.

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

Le correctif

Conditionner les types de page SCSI-SPI sur enmCtrlType == LSILOGICCTRLTYPE_SCSI_SPI. Rétablir la vérification des attributs de page afin que Readonly Port 0 reste en lecture seule. Vérifier la valeur NULL de pManufacturingPage7 (ainsi que des autres pointeurs SAS) avant déréférencement. Cesser de superposer SpiPages et SasPages dans une seule union.

Références

Télécharger l’outil