Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
cve-2022-46395-qemu — Laboratoire basé sur QEMU pour reproduire la condition de course CVE-2022-46395 dans le pilote GPU Arm Mali r36p0. Inclut un PoC, des scripts de construction et un packaging initramfs pour la recherche locale de vulnérabilités et les tests de régression. | Kitploit
Outils/GitHubGitHub/gao-zuin/cve-2022-46395-qemu
Analyse des VulnérabilitésExploitationFuzzingApprentissage et ÉducationExploitation de BinairesLabs et Pratique
GitHubgao-zuin/cve-2022-46395-qemu

cve-2022-46395-qemu

Laboratoire basé sur QEMU pour reproduire la condition de course CVE-2022-46395 dans le pilote GPU Arm Mali r36p0. Inclut un PoC, des scripts de construction et un packaging initramfs pour la recherche locale de vulnérabilités et les tests de régression.

Voir le dépôt
2il y a 3 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2022-46395 Laboratoire QEMU r36p0

Ce dépôt contient un laboratoire QEMU/no-Mali pour reproduire la condition de déclenchement portable de CVE-2022-46395 contre la lignée de pilotes Arm Mali r36p0.

Le laboratoire est destiné à la recherche locale de vulnérabilités et aux tests de régression. Il ne comporte pas la charge utile d'élévation de privilèges spécifique à Pixel de l'exploit original. En mode LAB_QEMU, le PoC s'arrête après avoir démontré que la fenêtre de course (race) soft-event/user-buffer a été atteinte.

Structure du dépôt

  • poc/ : PoC CVE-2022-46395 adapté pour QEMU. Les appels de journalisation et de propriétés Android sont remplacés, et le patching du texte du noyau Pixel est désactivé sous LAB_QEMU.
  • src/google-gpu-raviole-android13/ : source du module GPU Google Pixel depuis android.googlesource.com/kernel/google-modules/gpu, branche android-gs-raviole-5.10-android13. Le fichier inclus identifie le pilote comme .
mali_kbase/Kbuild
r36p0-01eac0
  • scripts/ : scripts d'assistance pour la construction, le packaging initramfs, le démarrage QEMU et la reproduction en un coup.
  • docs/ : notes d'analyse locales et rapports de reproduction.
  • logs/ : journaux de preuve sélectionnés de exécutions locales réussies.
  • Les binaires générés, les archives initramfs, les fichiers objets et la plupart des journaux d'exécution sont ignorés par Git. Reconstruisez-les localement avec les scripts ci-dessous.

    Prérequis hôte

    Les scripts ont été utilisés sur une machine virtuelle Linux avec :

    • bash, make, gcc, file, cpio, gzip, modinfo
    • busybox at /bin/busybox
    • qemu-system-x86_64
    • un arbre de noyau Linux 5.10 x86_64 KASAN préparé pouvant construire des modules externes

    Par défaut, les scripts attendent l'arbre du noyau et l'image de démarrage à :

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

    Vous pouvez remplacer ces chemins avec KDIR et KERNEL_IMAGE.

    Reproduire

    Clonez le dépôt et entrez dans celui-ci :

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

    Exécutez le flux complet de construction/paquet/démarrage :

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

    Si votre noyau KASAN n'est pas dans le répertoire frère par défaut ../build :

    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
    

    L'exécution locale réussie a utilisé ce minuteur :

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

    Pour une journalisation plus verbose des tentatives :

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

    Étapes manuelles

    Le script en un coup équivaut à :

    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
    

    Variables d'environnement utiles :

    • KDIR : arbre de construction du noyau utilisé pour compiler mali_kbase.ko
    • KERNEL_IMAGE : bzImage passé à QEMU
    • QEMU_LOG : chemin du journal de sortie
    • QEMU_MEM : taille mémoire QEMU, par défaut 1536M
    • QEMU_SMP : nombre de CPU QEMU, par défaut 3
    • MAX_ATTEMPTS : limite de tentatives du PoC, par défaut 2000
    • UNMAP_OFFSET_NS : décalage temporel de la race, par défaut -800000
    • VERBOSE_ATTEMPTS=1 : afficher les détails par tentative
    • KASAN_UAF_MODE=1 : charger le module avec l'option de sonde KASAN UAF utilisée par scripts/reproduce_kasan_uaf.sh

    Preuve attendue

    Une exécution réussie affiche des lignes comme :

    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
    

    Le journal de preuve de référence est :

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

    La condition de succès clé est err=0, read=3, et fault < reset. Cela indique que la fenêtre de course a été atteinte contre r36p0-01eac0 dans le QEMU sans Mali.

    Remarques

    • Ceci est un déclencheur de laboratoire QEMU, pas une chaîne d'exploit de périphérique complète.
    • L'étape finale originale de Pixel dépend d'offsets de texte du noyau ARM64 codés en dur et n'est pas intentionnellement utilisée ici.
    • Si QEMU se termine sans reproduire la race, relancez avec un MAX_ATTEMPTS plus élevé ou ajustez UNMAP_OFFSET_NS.
    Télécharger l’outil