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
cve-2022-46395-qemu — # QEMU-basiertes Labor zur Reproduktion der Race-Condition CVE-2022-46395 im Arm-Mali-r36p0-GPU-Treiber. Enthält PoC, Build-Skripte und Initramfs-Paketierung für lokale Schwachstellenforschung und Regressionstests. | Kitploit
Tools/GitHubGitHub/gao-zuin/cve-2022-46395-qemu
SchwachstellenanalyseExploitationFuzzingLernen & BildungBinary-ExploitationLabs & Praxis
GitHubgao-zuin/cve-2022-46395-qemu

cve-2022-46395-qemu

# QEMU-basiertes Labor zur Reproduktion der Race-Condition CVE-2022-46395 im Arm-Mali-r36p0-GPU-Treiber. Enthält PoC, Build-Skripte und Initramfs-Paketierung für lokale Schwachstellenforschung und Regressionstests.

Repository anzeigen
2vor 3 MonatenNoch 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

CVE-2022-46395 QEMU r36p0 Labor

Dieses Repository enthält ein QEMU/no-Mali-Labor zur Reproduktion der portablen Auslösebedingung von CVE-2022-46395 für die Arm-Mali-r36p0-Treiberlinie.

Das Labor ist für lokale Schwachstellenforschung und Regressionstests gedacht. Es enthält nicht die Pixel-spezifische Privilege-Escalation-Payload des ursprünglichen Exploits. Im Modus LAB_QEMU stoppt der PoC, nachdem gezeigt wurde, dass das Soft-Event/User-Buffer-Race-Fenster erreicht wurde.

Repository-Struktur

  • poc/: An QEMU angepasster CVE-2022-46395-PoC. Android-Logging- und Property-Aufrufe sind ersetzt, und das Pixel-Kernel-Text-Patching ist unter LAB_QEMU deaktiviert.
  • src/google-gpu-raviole-android13/: Google-Pixel-GPU-Modulquelle von android.googlesource.com/kernel/google-modules/gpu, Branch android-gs-raviole-5.10-android13. Die enthaltene mali_kbase/Kbuild identifiziert den Treiber als .
r36p0-01eac0
  • scripts/: Helfer für Build, Initramfs-Paketierung, QEMU-Boot und einmalige Reproduktion.
  • docs/: lokale Analyse-Notizen und Reproduktionsberichte.
  • logs/: ausgewählte Belegprotokolle erfolgreicher lokaler Läufe.
  • Generierte Binärdateien, Initramfs-Archive, Objektdateien und die meisten Laufzeitprotokolle werden von Git ignoriert. Baue sie lokal mit den unten stehenden Skripten neu.

    Host-Anforderungen

    Die Skripte wurden auf einer Linux-VM mit Folgendem verwendet:

    • bash, make, gcc, file, cpio, gzip, modinfo
    • busybox unter /bin/busybox
    • qemu-system-x86_64
    • einem vorbereiteten Linux-5.10-x86_64-KASAN-Kernelbaum, der externe Module bauen kann

    Standardmäßig erwarten die Skripte den Kernelbaum und das Boot-Image unter:

    root@kitploit:~
    ../build/linux-5.10-kasan
    ../build/linux-5.10-kasan/arch/x86/boot/bzImage
    

    Du kannst diese Pfade mit KDIR und KERNEL_IMAGE überschreiben.

    Reproduktion

    Klone das Repository und wechsle hinein:

    root@kitploit:~
    git clone https://github.com/Gao-Zuin/cve-2022-46395-qemu.git
    cd cve-2022-46395-qemu
    

    Führe den vollständigen Build-/Paket-/Boot-Ablauf aus:

    root@kitploit:~
    MAX_ATTEMPTS=2000 ./scripts/reproduce.sh
    

    Falls sich dein KASAN-Kernel nicht im standardmäßigen Schwesterverzeichnis ../build befindet:

    root@kitploit:~
    KDIR=/path/to/linux-5.10-kasan \
    KERNEL_IMAGE=/path/to/linux-5.10-kasan/arch/x86/boot/bzImage \
    MAX_ATTEMPTS=2000 \
    ./scripts/reproduce.sh
    

    Der erfolgreiche lokale Lauf verwendete dieses Timing:

    root@kitploit:~
    MAX_ATTEMPTS=2000 UNMAP_OFFSET_NS=-800000 ./scripts/reproduce.sh
    

    Für eine ausführlichere Protokollierung der Versuche:

    root@kitploit:~
    MAX_ATTEMPTS=2000 VERBOSE_ATTEMPTS=1 UNMAP_OFFSET_NS=-800000 \
      ./scripts/reproduce.sh
    

    Manuelle Schritte

    Das Einmal-Skript entspricht:

    root@kitploit:~
    ./scripts/build_r36p0_no_mali.sh
    ./scripts/build_poc.sh
    MAX_ATTEMPTS=2000 UNMAP_OFFSET_NS=-800000 ./scripts/package_initramfs.sh
    ./scripts/run_qemu.sh
    

    Nützliche Umgebungsvariablen:

    • KDIR: Kernel-Build-Verzeichnis zum Kompilieren von mali_kbase.ko
    • KERNEL_IMAGE: an QEMU übergebenes bzImage
    • QEMU_LOG: Pfad für das Ausgabeprotokoll
    • QEMU_MEM: QEMU-Speichergröße, Standard 1536M
    • QEMU_SMP: QEMU-CPU-Anzahl, Standard 3
    • MAX_ATTEMPTS: PoC-Wiederholungslimit, Standard 2000
    • UNMAP_OFFSET_NS: Race-Timing-Offset, Standard -800000
    • VERBOSE_ATTEMPTS=1: Details zu jedem Versuch ausgeben
    • KASAN_UAF_MODE=1: Modul mit der KASAN-UAF-Sondenoption laden, die von scripts/reproduce_kasan_uaf.sh verwendet wird

    Erwartete Belege

    Ein erfolgreicher Lauf gibt Zeilen wie die folgenden aus:

    root@kitploit:~
    mali mali.0: Kernel DDK version r36p0-01eac0
    r36p0-01eac0 (UK version 11.34)
    /dev/mali0
    finished reset: 703956220 fault: 682115150 68 err 0 read 3
    qemu lab mode: CVE-2022-46395 soft-event/user-buffer race reproduced
    qemu lab mode: reproduction completed after 17 attempts
    [init] PoC status: 0
    

    Das Referenz-Beweisprotokoll ist:

    root@kitploit:~
    logs/qemu-cve-2022-46395-r36p0-unmap-minus800us.log
    

    Die wichtigste Erfolgsbedingung ist err=0, read=3 und fault < reset. Das zeigt an, dass das Race-Fenster gegen r36p0-01eac0 in no-Mali-QEMU erreicht wurde.

    Hinweise

    • Dies ist ein QEMU-Lab-Trigger, keine vollständige Geräte-Exploit-Kette.
    • Die ursprüngliche Pixel-Endstufe hängt von hartcodierten ARM64-Kernel-Text- Offsets ab und wird hier absichtlich nicht verwendet.
    • Falls QEMU beendet wird, ohne das Race zu reproduzieren, führe den Ablauf erneut mit einem höheren MAX_ATTEMPTS aus oder passe UNMAP_OFFSET_NS an.
    Tool herunterladen