
Preuve de concept d'exploit pour le pilote noyau GVCIDrv64.sys de Gigabyte, permettant une élévation de privilèges locale via la lecture/écriture arbitraire de la mémoire physique et des ports d'E/S.
salut les hackers.
GVCIDrv64.sys est le pilote noyau signé qui accompagne l'utilitaire BIOS de Gigabyte. Il crée \\.\GVCIDrv64 sans descripteur de sécurité, donc n'importe quel utilisateur local peut l'ouvrir — pas d'admin, pas d'UAC. Il expose 3 IOCTLs sans aucun contrôle d'accès : mapper 32 Mo de mémoire physique (0x9C406580), démapper (0x9C406584), et lecture/écriture brute de ports d'E/S de 1/2/4 octets (0x9C406588).
L'astuce réside dans la façon dont 2 d'entre eux se combinent. L'IOCTL de mapping lit le BAR0 d'un périphérique PCI et le mappe — mais l'IOCTL de port permet de réécrire ce BAR0 au préalable. Pointez le BAR vers n'importe quelle adresse physique, appelez map, et 32 Mo de la RAM de votre choix atterrissent dans votre processus. C'est de la lecture/écriture physique arbitraire construite à partir de 2 fonctionnalités qui étaient chacune censées être inoffensives.
Alors qu'obtient-on ? Lecture/écriture arbitraire de la mémoire physique et accès arbitraire aux ports d'E/S depuis un compte utilisateur ordinaire, sans corruption mémoire et sans mitigations à combattre. L'exploit scanne la mémoire physique à la recherche du processus System (pid 4), lit son token, écrase son propre token de processus et lance un shell système. Data-only, pas de shellcode en mode noyau.
2 limites pratiques. BAR0 est en 32 bits, donc la fenêtre reste sous 4 Go — utilisez une VM avec ≤2 Go de RAM. Et l'exploit réécrit brièvement le BAR0 d'une carte réseau, donc désactivez d'abord l'adaptateur réseau, sinon une interruption pendant l'échange vous vaudra un BSOD.
Testé sur Windows 10 x64 22H2 dans VMware Workstation (2 Go de RAM). Le pilote est déjà chargé sur les machines où l'utilitaire Gigabyte est installé ; l'exploit peut aussi le charger via SCM sur une machine de test.
gcc -O2 -o exploit.exe exploit.c -ladvapi32
exploit.exe
Signalé à Gigabyte en juin 2026. Gigabyte a supprimé le pilote entièrement et l'a remplacé par GvVbiosDrv64.sys dans GBT_VGA_26.08.24.01 — l'ancien pilote vulnérable n'est plus présent. Avis : Security Advisory 2454.
arb_rw.c est un outil autonome de lecture/écriture/dump de mémoire physique.
SHA256 a2353030d4ea3ad9e874a0f7ff35bbfa10562c98c949d88cabab27102bbb8e48 GVCIDrv64.sys