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-21045_and_CVE-2026-21048 — Genera archivos TIFF/DNG manipulados para provocar escrituras fuera de los límites en libimagecodec.quram.so de Samsung, incluyendo análisis binario y pasos de reproducción. | Kitploit
Herramientas/GitHubGitHub/pealeap/cve-2026-21045_and_cve-2026-21048
Seguridad AndroidAnálisis de VulnerabilidadesExplotaciónIngeniería InversaSeguridad MóvilAnálisis de BinariosAprendizaje y EducaciónExplotación de Binarios

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

CVE-2026-21045_and_CVE-2026-21048

Genera archivos TIFF/DNG manipulados para provocar escrituras fuera de los límites en libimagecodec.quram.so de Samsung, incluyendo análisis binario y pasos de reproducción.

Ver Repositorio
1hace 1 mesAún no revisado

CVE-2026-21045 y CVE-2026-21048 — PoC de escritura OOB en libimagecodec.quram.so de Samsung

Resumen

Este repositorio contiene archivos conceptuales de Prueba de Concepto (PoC) que demuestran vulnerabilidades de escritura fuera de límites (OOB) en la biblioteca de códec de imagen Quramsoft (libimagecodec.quram.so) utilizada en dispositivos Samsung Android.

CVEFormatoTipoSeveridadCVSS 4.0Corregido en
CVE-2026-21045TIFFEscritura fuera de límites (CWE-787)Crítica8.4SMR Jul-2026 Release 1
CVE-2026-21048DNGEscritura fuera de límites (CWE-787)Alta—SMR Jul-2026 Release 1

Dispositivos afectados

  • Dispositivos Samsung Galaxy con Android 14, 15, 16
  • Específicamente: Galaxy Z Fold 7, Flip 7, series S y A (p. ej., A17)
  • Dispositivos con parche de seguridad anterior a SMR Jul-2026 Release 1
  • Librería: /system/lib64/libimagecodec.quram.so

Mecanismo de la vulnerabilidad

Causa raíz

La vulnerabilidad reside en la función de análisis de etiquetas IFD (Image File Directory) WINKJ_ReadExifField (desplazamiento 0x13a0a8 en el binario de 64 bits). Esta función procesa entradas IFD individuales de TIFF/EXIF, cada una de las cuales es una estructura de 12 bytes:

root@kitploit:~
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

Cuando count * element_size > 4, el campo Value de 4 bytes se trata como un desplazamiento de archivo (que apunta a dónde se encuentran los datos reales). El código realiza entonces una comprobación de límites en la dirección 0x13a258:

root@kitploit:~
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

Evasión por desbordamiento de entero

La vulnerabilidad es un desbordamiento de entero sin signo de 32 bits en la suma. Si un atacante manipula value_offset y count * element_size de modo que su suma dé la vuelta (wrap around) a un valor pequeño, la comprobación se supera aunque el acceso real a memoria en base + value_offset quede fuera de límites.

Ejemplo (tipo UNDEFINED, element_size = 1):

La suma de 32 bits 0x17FFF + 0xFFFF0001 = 0x10008000 se trunca a 0x8000, que es igual a buffer_size. La comprobación se supera, pero el puntero de datos real (base + 0x17FFF) se encuentra 0x7FFF bytes más allá del final del búfer asignado.

Ruta de código vulnerable

root@kitploit:~
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

Archivos PoC

ArchivoDescripción
cve-2026-21045_tiff_oob_poc.pyGenera poc_crash.tif — TIFF malformado que provoca una escritura OOB mediante una etiqueta ASCII con count/offset manipulados
cve-2026-21048_dng_oob_poc.pyGenera poc_crash.dng — DNG malformado que provoca una escritura OOB mediante una etiqueta UNDEFINED con count/offset manipulados

Uso

root@kitploit:~
# 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

Comportamiento esperado

En un dispositivo sin parchear (parche de seguridad < julio de 2026), abrir el archivo TIFF/DNG manipulado en Samsung Gallery (o cualquier aplicación que use el decodificador Quram) debería provocar una corrupción de memoria heap que potencialmente puede llevar a:

  • Fallo de la aplicación (SIGSEGV/SIGABRT)
  • Escritura fuera de límites en heap
  • Con diseños de heap específicos: posible ejecución arbitraria de código

En un dispositivo parcheado (SMR Jul-2026+), la imagen debería ser rechazada como inválida o procesada de forma segura. Un fallo en un dispositivo totalmente parcheado puede indicar un problema separado sin parchear.

Detalles del análisis del binario

Información de la librería

root@kitploit:~
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

Funciones clave

Tabla de despacho (tipo de etiqueta → manejador)

Extraído de WINKJ_ReadExifField:

Todos los tipos con element_size = 1 (BYTE, ASCII, UNDEFINED) comparten el mismo manejador y son igualmente vulnerables a la evasión por desbordamiento de entero.

CVEs relacionados

Descargo de responsabilidad

Estas pruebas de concepto se proporcionan únicamente con fines educativos y de investigación en seguridad. Demuestran el mecanismo de la vulnerabilidad para ayudar a usuarios y desarrolladores a comprender el riesgo. No las utilices contra sistemas que no poseas o para los que no tengas permiso explícito de prueba.

Referencias

  • https://nvd.nist.gov/vuln/detail/CVE-2026-21045
  • https://nvd.nist.gov/vuln/detail/CVE-2026-21048
  • https://security.samsungmobile.com/securityUpdate.smsb
  • https://gitlab.com/libtiff/libtiff/-/releases/v4.6.0
Descargar herramienta
CampoValor (hex)Decimal
count0xFFFF00014,294,901,761
element_size11
count * element_size0xFFFF0001 ≡ -65535 (mod 2³²)4,294,901,761
value_offset0x00017FFF98,303
value_offset + count*size0x00008000 (¡desbordamiento!)32,768
buffer_size0x0000800032,768
Resultado de la comprobación: 0x8000 <= 0x8000✅ PASA—
Acceso real a memoria: base + 0x17FFF0x7FFF bytes más allá del búfer❌ OOB
FunciónDirección (64-bit)TamañoPropósito
WINKJ_ReadExifField0x13a0a8912Analiza una entrada IFD individual (vulnerable)
WINKJ_ReadTiffIFDInfo0x139d28896Lee todas las entradas IFD
WINKJ_ReadTiffInfo0x139ad4596Analizador de información TIFF de alto nivel
WINKJ_GetTiffInfo0x1393fc1752Punto de entrada principal del análisis TIFF
decodeTIFF0x1a2adc580Decodifica imágenes TIFF mediante libtiff
getTIFFImageInfo0x1a2d20508Obtiene los metadatos de la imagen TIFF
copySubImageBuffer0x0b2824324Copia la región de la subimagen
TIFFReadDirectory0x1aac785896Lector de directorios de libtiff 4.6.0
_TIFFMultiply320x1a2f1c56Comprobación segura de multiplicación de 32 bits
_TIFFMultiply640x1a2f5848Comprobación segura de multiplicación de 64 bits
TipoNombreTamaño del elementoDirección del manejador
1BYTE10x13a15c
2ASCII10x13a15c
3SHORT20x13a1d0
4LONG40x13a17c
5RATIONAL80x13a1ac
6SBYTE10x13a15c
7UNDEFINED10x13a15c
8SSHORT20x13a1d0
9SLONG40x13a17c
10SRATIONAL80x13a1ac
11FLOAT40x13a17c
12DOUBLE80x13a1ac
CVEDescripciónEstado
CVE-2025-58477Escritura OOB en el análisis de etiquetas IFD en libimagecodec.quram.so (SMR Dec-2025)✅ Parcheado
CVE-2026-20973Lectura OOB en libimagecodec.quram.so (SMR Jan-2026)✅ Parcheado
CVE-2026-21045Escritura OOB en el análisis TIFF en libimagecodec.media.quram.so (SMR Jul-2026)⚠️ Sin parchear para mí
CVE-2026-21048Escritura OOB en el análisis DNG en libimagecodec.media.quram.so (SMR Jul-2026)⚠️ Sin parchear para mí
CVE-2026-4775Desbordamiento de entero con signo en libtiff 4.6.0 putcontig8bitYCbCr44tile⚠️ Sin parchear para mí
CVE-2024-7006Desreferencia de NULL en libtiff tif_dirinfo.c✅ Corregido en 4.6.1