
Lokaler Privilegieneskalations-Exploit für den MODAPI.sys-Treiber von MSI Dragon Center, der unauthentifizierte MSR-Schreibvorgänge ausnutzt, um SMEP zu umgehen und SYSTEM-Rechte zu erlangen.
hi Hacker.
Dieser hier ist ein unauthentifizierter MSR-Schreibzugriff innerhalb von MODAPI.sys, dem Kernel-Treiber, den MSI Dragon Center 2.0.155.0 installiert. Der Treiber stellt ein Geräteobjekt mit einem Sicherheitsdeskriptor bereit, der es jedem lokalen Benutzer erlaubt, es zu öffnen, ohne Administrator und ohne UAC. Sobald man das Handle hat, gibt es keine Whitelist für den MSR-Index, sodass man jeden beliebigen MSR lesen und schreiben kann.
Die Leseseite bricht bereits für sich genommen KASLR. Liest man IA32_LSTAR (0xC0000082), liefert der Treiber einem ntoskrnl!KiSystemCall64 gratis. Die Schreibseite ist das eigentliche Problem. IA32_LSTAR ist die Adresse, zu der die CPU bei einem Syscall springt, und der Treiber erlaubt einem normalen Benutzer, sie zu überschreiben. Richtet man sie auf Code, den man kontrolliert, führt der nächste Syscall den eigenen Code auf CPL0 aus. SMEP ist das Einzige, was im Weg steht, also liest der Exploit zuerst IA32_LSTAR, um ntoskrnl zu finden, parst das Image von der Festplatte, findet ein paar Gadgets, um SMEP mit mov cr4, rax zu deaktivieren, führt einen kleinen Shellcode aus, der das SYSTEM-Token in den aktuellen Prozess kopiert, und stellt IA32_LSTAR beim Verlassen wieder her, damit die Maschine weiter funktioniert.
Ich habe dies auf Windows 10 x64 22H2 (Build 19045.6456) von einem Standardbenutzerkonto aus getestet. Es gibt keine Race und kein Heap Grooming, es funktionierte bei jedem Durchlauf. Der Treiber wird mit Dragon Center auf MSI-Rechnern ausgeliefert, ist also bereits auf vielen Systemen geladen. Baue es mit gcc -O2 -o poc.exe poc.c -lpsapi und führe es als normaler Benutzer aus. Es wurde am 2026-06-21 an MSI gemeldet und der Fix wurde verifiziert.
11bd2c9f9e2397c9a16e0990e4ed2cf0679498fe0fd418a3dfdac60b5c160ee5 MODAPI.sys
