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
Herramientas/GitHubGitHub/filipemendonca1978/cve-2026-21045_and_cve-2026-21048
Seguridad AndroidAnálisis de VulnerabilidadesExplotaciónIngeniería InversaFuzzingSeguridad MóvilPapers e InvestigaciónAprendizaje 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
GitHubfilipemendonca1978/cve-2026-21045_and_cve-2026-21048

CVE-2026-21045_and_CVE-2026-21048

PoC de escritura fuera de límites en libimagecodec.quram.so de Samsung

Ver Repositorio
1hace 1 mesAún no revisado

CVE-2026-21045 y CVE-2026-21048 — PoC de escritura fuera de límites en Samsung libimagecodec.quram.so

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 imágenes Quramsoft (libimagecodec.quram.so) utilizada en dispositivos Samsung Android.

CVEFormatoTipoSeveridadCVSS 4.0Parcheado 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, serie S, serie A (p. ej., A17)
  • Dispositivos con parche de seguridad anterior a SMR Jul-2026 Release 1
  • Biblioteca: /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 (offset 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  Campo
------  ----  -----
0       2     ID de etiqueta
2       2     Tipo de datos (1=BYTE, 2=ASCII, 3=SHORT, 4=LONG, 5=RATIONAL, etc.)
4       4     Conteo (número de valores)
8       4     Valor / Offset de los datos

Cuando count * element_size > 4, el campo Valor de 4 bytes se trata como un offset 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

Bypass por desbordamiento de enteros

La vulnerabilidad es un desbordamiento de enteros sin signo de 32 bits en la suma. Si un atacante diseña value_offset y count * element_size de modo que su suma se enrolle hasta un valor pequeño, la comprobación se supera aunque el acceso real a memoria en base + value_offset esté fuera de los 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 después del final del búfer asignado.

Ruta de código vulnerable

root@kitploit:~
TIFFReadDirectory / WINKJ_ReadTiffInfo
  └─> WINKJ_ReadTiffIFDInfo   (asigna el búfer IFD)
       └─> para cada entrada IFD:
            └─> WINKJ_ReadExifField   (analiza la entrada, lee los datos del valor)
                 └─> Switch sobre el tipo de datos (tabla de saltos en 0x13a15c)
                      ├─ Tipo 0 (BYTE/ASCII/UNDEFINED):  manejador en 0x13a15c
                      ├─ Tipo 3/8 (SHORT/SSHORT):       manejador en 0x13a1d0
                      ├─ Tipo 4/9/11 (LONG/SLONG/FLOAT): manejador en 0x13a17c
                      └─ Tipo 5/10/12 (RATIONAL/SRATIONAL/DOUBLE): manejador en 0x13a1ac
                      Cada manejador -> lee datos en offset -> comprobación de límites en 0x13a258

Archivos PoC

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

Uso

root@kitploit:~
# Generar PoC TIFF
python3 cve-2026-21045_tiff_oob_poc.py -o payload.tif

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

# Transferir al dispositivo y activar (p. ej., mediante Galería/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 causar una corrupción de memoria heap que potencialmente puede conducir a:

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

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

Detalles del análisis del binario

Información de la biblioteca

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ída de WINKJ_ReadExifField:

Todos los tipos con element_size = 1 (BYTE, ASCII, UNDEFINED) comparten el mismo manejador y son igualmente vulnerables al bypass por desbordamiento de enteros.

CVEs relacionados

Aviso legal

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 utilice contra sistemas que no posea o para los cuales no tenga 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 bits)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 la imagen TIFF mediante libtiff
getTIFFImageInfo0x1a2d20508Obtiene los metadatos de la imagen TIFF
copySubImageBuffer0x0b2824324Copia la región de 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 de 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 enteros con signo en libtiff 4.6.0 putcontig8bitYCbCr44tile⚠️ Sin parchear para mí
CVE-2024-7006Desreferencia NULL en libtiff tif_dirinfo.c✅ Corregido en 4.6.1