Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-21045_and_CVE-2026-21048 — Genera file TIFF/DNG appositamente modificati per innescare scritture fuori dai limiti in libimagecodec.quram.so di Samsung, inclusa l'analisi binaria e i passaggi di riproduzione. | Kitploit
Strumenti/GitHubGitHub/pealeap/cve-2026-21045_and_cve-2026-21048
Sicurezza AndroidAnalisi delle VulnerabilitàExploitReverse EngineeringSicurezza MobileAnalisi di BinariApprendimento e FormazioneBinary Exploitation

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
GitHub
pealeap/cve-2026-21045_and_cve-2026-21048

CVE-2026-21045_and_CVE-2026-21048

Genera file TIFF/DNG appositamente modificati per innescare scritture fuori dai limiti in libimagecodec.quram.so di Samsung, inclusa l'analisi binaria e i passaggi di riproduzione.

Vedi Repository
2662 mesi faNon ancora revisionato

CVE-2026-21045 & CVE-2026-21048 — PoC di scrittura OOB nel libimagecodec.quram.so di Samsung

Panoramica

Questo repository contiene file Proof-of-Concept (PoC) concettuali che dimostrano vulnerabilità di scrittura fuori dai limiti (OOB) nella libreria codec immagini Quramsoft (libimagecodec.quram.so) usata sui dispositivi Samsung Android.

CVEFormatoTipoGravitàCVSS 4.0Corretto in
CVE-2026-21045TIFFScrittura fuori dai limiti (CWE-787)Critica8.4SMR Jul-2026 Release 1
CVE-2026-21048DNGScrittura fuori dai limiti (CWE-787)Alta—SMR Jul-2026 Release 1

Dispositivi interessati

  • Dispositivi Samsung Galaxy con Android 14, 15, 16
  • Nello specifico: Galaxy Z Fold 7, Flip 7, serie S, serie A (es. A17)
  • Dispositivi con patch di sicurezza precedente a SMR Jul-2026 Release 1
  • Libreria: /system/lib64/libimagecodec.quram.so

Meccanismo della vulnerabilità

Causa principale

La vulnerabilità risiede nella funzione di parsing dei tag IFD (Image File Directory) WINKJ_ReadExifField (offset 0x13a0a8 nel binario a 64 bit). Questa funzione elabora le singole voci IFD TIFF/EXIF, ciascuna delle quali è una struttura di 12 byte:

Offset  Size  Field
------  ----  -----
0       2     Tag ID
2       2     Data Type (1=BYTE, 2=ASCII, 3=SHORT, 4=LONG, 5=RATIONAL, etc.)
4       4     Count (number of values)
8       4     Value / Offset to data

Quando count * element_size > 4, il campo Value a 4 byte viene trattato come un offset di file (che punta al punto in cui si trovano i dati effettivi). Il codice esegue quindi un controllo dei limiti all'indirizzo 0x13a258:

add w8, w6, w7    ; w8 = value_offset + (count * element_size)  [32-bit]
cmp w8, w5        ; compare against remaining buffer size
b.ls ok           ; if w8 <= buffer_size, proceed

Bypass dell'overflow di interi

La vulnerabilità è un overflow di interi senza segno a 32 bit nell'addizione. Se un attaccante costruisce value_offset e count * element_size in modo che la loro somma vada in wrap-around fino a un valore piccolo, il controllo passa anche se l'accesso effettivo alla memoria all'indirizzo base + value_offset esce dai limiti.

Esempio (tipo UNDEFINED, element_size = 1):

CampoValore (hex)Decimale
count0xFFFF00014,294,901,761
element_size11
count * element_size0xFFFF0001 ≡ -65535 (mod 2³²)4,294,901,761
value_offset0x00017FFF98,303
value_offset + count*size0x00008000 (overflow!)32,768
buffer_size0x0000800032,768
Risultato del controllo: 0x8000 <= 0x8000✅ PASS—
Accesso memoria effettivo: base + 0x17FFF0x7FFF byte oltre il buffer❌ OOB

L'addizione a 32 bit 0x17FFF + 0xFFFF0001 = 0x10008000 viene troncata a 0x8000, che è uguale a buffer_size. Il controllo passa, ma il puntatore dati effettivo (base + 0x17FFF) si trova 0x7FFF byte oltre la fine del buffer allocato.

Percorso del codice vulnerabile

TIFFReadDirectory / WINKJ_ReadTiffInfo
  └─> WINKJ_ReadTiffIFDInfo   (allocates IFD buffer)
       └─> for each IFD entry:
            └─> WINKJ_ReadExifField   (parses entry, reads value data)
                 └─> Switch on Data Type (jump table at 0x13a15c)
                      ├─ Type 0 (BYTE/ASCII/UNDEFINED):  handler at 0x13a15c
                      ├─ Type 3/8 (SHORT/SSHORT):       handler at 0x13a1d0
                      ├─ Type 4/9/11 (LONG/SLONG/FLOAT): handler at 0x13a17c
                      └─ Type 5/10/12 (RATIONAL/SRATIONAL/DOUBLE): handler at 0x13a1ac
                      Each handler -> reads data at offset -> bounds check at 0x13a258

File PoC

FileDescrizione
cve-2026-21045_tiff_oob_poc.pyGenera poc_crash.tif — TIFF malformato che innesca una scrittura OOB tramite tag ASCII con count/offset modificati ad arte
cve-2026-21048_dng_oob_poc.pyGenera poc_crash.dng — DNG malformato che innesca una scrittura OOB tramite tag UNDEFINED con count/offset modificati ad arte

Utilizzo

# Generate TIFF PoC
python3 cve-2026-21045_tiff_oob_poc.py -o payload.tif

# Generate DNG PoC
python3 cve-2026-21048_dng_oob_poc.py -o payload.dng

# Transfer to device and trigger (e.g., via Gallery/MMS)
adb push payload.tif /sdcard/Download/
adb shell am start -a android.intent.action.VIEW -d file:///sdcard/Download/payload.tif -t image/tiff

Comportamento atteso

Su un dispositivo senza patch (patch di sicurezza < luglio 2026), l'apertura del file TIFF/DNG modificato in Samsung Gallery (o in qualsiasi app che usa il decoder Quram) dovrebbe causare una corruzione della memoria heap che può potenzialmente portare a:

  • Crash dell'applicazione (SIGSEGV/SIGABRT)
  • Scrittura heap fuori dai limiti
  • Con specifici layout di heap: potenziale esecuzione di codice arbitrario

Su un dispositivo con patch (SMR Jul-2026+), l'immagine dovrebbe essere rifiutata come non valida oppure elaborata in modo sicuro. Un crash su un dispositivo completamente aggiornato può indicare un problema separato non ancora corretto.

Dettagli dell'analisi del binario

Informazioni sulla libreria

File:   libimagecodec.quram.so (64-bit)
SHA256: (verify against your copy)
NDK:    r23c (Android 21)
Built:  2021-12-31 (placeholder date)
Soname: libimagecodec.quram.so

Funzioni principali

FunzioneIndirizzo (64-bit)DimensioneScopo
WINKJ_ReadExifField0x13a0a8912Analizza la singola voce IFD (vulnerabile)
WINKJ_ReadTiffIFDInfo0x139d28896Legge tutte le voci IFD
WINKJ_ReadTiffInfo0x139ad4596Parser di alto livello delle info TIFF
WINKJ_GetTiffInfo0x1393fc1752Punto di ingresso principale del parsing TIFF
decodeTIFF0x1a2adc580Decodifica l'immagine TIFF tramite libtiff
getTIFFImageInfo0x1a2d20508Ottiene i metadati dell'immagine TIFF
copySubImageBuffer0x0b2824324Copia la regione della sotto-immagine
TIFFReadDirectory0x1aac785896Lettore di directory libtiff 4.6.0
_TIFFMultiply320x1a2f1c56Controllo sicuro di moltiplicazione a 32 bit
_TIFFMultiply640x1a2f5848Controllo sicuro di moltiplicazione a 64 bit

Tabella di dispatch (tipo di tag → handler)

Estratto da WINKJ_ReadExifField:

TipoNomeDimensione elementoIndirizzo handler
1BYTE10x13a15c
2ASCII10x13a15c
3SHORT20x13a1d0
4LONG40x13a17c
5RATIONAL80x13a1ac
6SBYTE10x13a15c
7UNDEFINED10x13a15c
8SSHORT20x13a1d0
9SLONG40x13a17c
10SRATIONAL80x13a1ac
11FLOAT40x13a17c
12DOUBLE80x13a1ac

Tutti i tipi con element_size = 1 (BYTE, ASCII, UNDEFINED) condividono lo stesso handler e sono ugualmente vulnerabili al bypass tramite overflow di interi.

CVE correlate

Scarica lo strumento