Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
cve-2022-46395-qemu — # Laboratório baseado em QEMU para reproduzir a condição de corrida CVE-2022-46395 no driver de GPU Arm Mali r36p0. Inclui PoC, scripts de build e empacotamento de initramfs para pesquisa local de vulnerabilidades e testes de regressão. | Kitploit
Ferramentas/GitHubGitHub/gao-zuin/cve-2022-46395-qemu
Análise de VulnerabilidadesExploraçãoFuzzingAprendizado e EducaçãoExploração de BináriosLabs e Prática
GitHubgao-zuin/cve-2022-46395-qemu

cve-2022-46395-qemu

# Laboratório baseado em QEMU para reproduzir a condição de corrida CVE-2022-46395 no driver de GPU Arm Mali r36p0. Inclui PoC, scripts de build e empacotamento de initramfs para pesquisa local de vulnerabilidades e testes de regressão.

Ver Repositório
2há 3 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Laboratório QEMU r36p0 CVE-2022-46395

Este repositório contém um laboratório QEMU/no-Mali para reproduzir a condição de gatilho portátil da CVE-2022-46395 contra a linhagem do driver Arm Mali r36p0.

O laboratório destina-se a pesquisa local de vulnerabilidades e testes de regressão. Ele não inclui o payload de escalonamento de privilégios específico do Pixel do exploit original. No modo LAB_QEMU, o PoC é interrompido após demonstrar que a janela de corrida (race) soft-event/user-buffer foi alcançada.

Estrutura do Repositório

  • poc/: PoC da CVE-2022-46395 adaptado para QEMU. As chamadas de log e de propriedades do Android são substituídas, e o patch de texto do kernel do Pixel é desativado sob LAB_QEMU.
  • src/google-gpu-raviole-android13/: código-fonte do módulo GPU do Google Pixel de android.googlesource.com/kernel/google-modules/gpu, branch android-gs-raviole-5.10-android13. O incluído identifica o driver como .
mali_kbase/Kbuild
r36p0-01eac0
  • scripts/: scripts auxiliares para build, empacotamento do initramfs, boot do QEMU e reprodução em uma única execução.
  • docs/: notas de análise local e relatórios de reprodução.
  • logs/: logs de evidência selecionados de execuções locais bem-sucedidas.
  • Binários gerados, arquivos initramfs, arquivos-objeto e a maioria dos logs de execução são ignorados pelo Git. Reconstrua-os localmente com os scripts abaixo.

    Requisitos do Host

    Os scripts foram usados em uma VM Linux com:

    • bash, make, gcc, file, cpio, gzip, modinfo
    • busybox em /bin/busybox
    • qemu-system-x86_64
    • uma árvore de kernel Linux 5.10 x86_64 KASAN preparada que possa compilar módulos externos

    Por padrão, os scripts esperam a árvore do kernel e a imagem de boot em:

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

    Você pode substituir esses caminhos com KDIR e KERNEL_IMAGE.

    Reprodução

    Clone o repositório e entre nele:

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

    Execute o fluxo completo de build/empacotamento/boot:

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

    Se o seu kernel KASAN não estiver no diretório irmão padrão ../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
    

    A execução local bem-sucedida utilizou este ajuste de temporização:

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

    Para logs de tentativas mais detalhados:

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

    Passos Manuais

    O script de execução única é equivalente a:

    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
    

    Variáveis de ambiente úteis:

    • KDIR: árvore de build do kernel usada para compilar mali_kbase.ko
    • KERNEL_IMAGE: bzImage passado para o QEMU
    • QEMU_LOG: caminho do log de saída
    • QEMU_MEM: tamanho da memória do QEMU, padrão 1536M
    • QEMU_SMP: número de CPUs do QEMU, padrão 3
    • MAX_ATTEMPTS: limite de tentativas do PoC, padrão 2000
    • UNMAP_OFFSET_NS: deslocamento de temporização da corrida, padrão -800000
    • VERBOSE_ATTEMPTS=1: exibir detalhes por tentativa
    • KASAN_UAF_MODE=1: carregar o módulo com a opção de probe KASAN UAF usada por scripts/reproduce_kasan_uaf.sh

    Evidência Esperada

    Uma execução bem-sucedida imprime linhas como:

    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
    

    O log de evidência de referência é:

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

    A condição principal de sucesso é err=0, read=3 e fault < reset. Isso indica que a janela de corrida foi alcançada contra r36p0-01eac0 no QEMU sem Mali.

    Notas

    • Este é um gatilho de laboratório QEMU, não uma cadeia completa de exploit de dispositivo.
    • O estágio final original do Pixel depende de offsets de texto do kernel ARM64 codificados e não é usado intencionalmente aqui.
    • Se o QEMU sair sem reproduzir a corrida, execute novamente com um MAX_ATTEMPTS maior ou ajuste UNMAP_OFFSET_NS.
    Baixar ferramenta