
Beliebiger physischer Speicher Lese-/Schreib-Exploit unter Verwendung von ThrottleStop.sys (CVE-2025-7771) mit Superfetch-Adressübersetzung - Windows-Kernel-Sicherheitsforschung
Forschungswerkzeug zur Demonstration des Zugriffs auf physischen Speicher durch Kombination von virtuell-zu-physischer Adressübersetzung mit der Ausnutzung eines anfälligen Treibers.
Dieses Projekt erforscht die low-level Windows-Speicherverwaltung, indem es die Superfetch-Technik zur Adressübersetzung mit IOCTL-basiertem physikalischem Speicherzugriff kombiniert. Entwickelt, um die Interaktion zwischen Kernel-Modus und Benutzermodus sowie die Interna des Speicher-Subsystems zu verstehen.
CVE ID: CVE-2025-7771
Komponente: ThrottleStop.sys (signierter Treiber von TechPowerUp LLC)
Betroffene Version: ThrottleStop 3.0.0.0 und möglicherweise andere
Schwachstellentyp: Offengelegter IOCTL mit unzureichender Zugriffskontrolle (CWE-782)
CVSS-Score: 8.7 (Hoch) – Kaspersky Labs
Auswirkung: Lokale Privilegienausweitung (LPE)
Der ThrottleStop.sys-Treiber stellt zwei IOCTL-Handler bereit, die über MmMapIoSpace vollständig beliebige Lese- und Schreiboperationen auf physischen Speicher ermöglichen. Es gibt keine Validierungsprüfungen, Grenzbeschränkungen oder Zugriffskontrollen für diese Schnittstellen. Jede Benutzermodusanwendung kann jede physische Adresse angeben und beliebige Daten lesen oder schreiben.
Dieser uneingeschränkte Zugriff ermöglicht:
Die willkürliche Natur des Zugriffs bedeutet, dass ein Angreifer vollständige Kontrolle über den physischen Speicher hat, ohne Einschränkungen durch den Treiber.
Die Ausnutzung folgt diesem Muster:
\\.\ThrottleStop öffnenNtQuerySystemInformation verwenden, um die Kernel-Basisadresse zu findenMmMapIoSpace ausgebenSchadsoftware in der Praxis hat diese Schwachstelle ausgenutzt, um Sicherheitsprodukte zu deaktivieren, indem Kernel-Funktionen wie NtAddAtom gepatcht werden, um den Ausführungsfluss zu kapern.
Dieses Projekt demonstriert die technischen Komponenten einer solchen Angriffskette zu Bildungszwecken:
Superfetch-Integration – Übersetzt virtuelle Kernel-Adressen mit SystemSuperfetchInformation in physische Adressen
Treiber-Schnittstelle – Kommuniziert mit dem anfälligen Treiber über DeviceIoControl für physische Speicheroperationen
// Acquire memory map for translation
auto mm = spf::memory_map::current();
// Translate virtual kernel address to physical
void* virt = reinterpret_cast<void*>(0xFFFFF80000001000);
std::uint64_t phys = mm->translate(virt);
// Access physical memory through driver
ULONG64 value = Driver.ReadPhysical<ULONG64>(phys);
Nur für Bildungs- und Forschungszwecke. Unbefugter Zugriff auf Computersysteme ist illegal. Dieser Code demonstriert dokumentierte Schwachstellen für defensive Sicherheitsforschung.
MIT-Lizenz