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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2025-66628 — CVE-2025-66628的技术分析,ImageMagick的TIM解析器中的整数溢出导致越界读取,包含根本原因、利用步骤和修复指导。 | Kitploit
工具/GitHubGitHub/sumitshah00/cve-2025-66628
静态分析漏洞分析代码分析漏洞利用二进制分析论文与研究学习与教育
GitHubsumitshah00/cve-2025-66628

CVE-2025-66628

CVE-2025-66628的技术分析,ImageMagick的TIM解析器中的整数溢出导致越界读取,包含根本原因、利用步骤和修复指导。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2025-66628: ImageMagick TIM解析器中的整数溢出

属性详情
CVE编号CVE-2025-66628
厂商ImageMagick Studio LLC
产品ImageMagick
受影响版本< 7.1.2-10
修复版本7.1.2-10
漏洞类型CWE-190 (整数溢出)
CVSS v3.1评分7.5 (高)
CVSS向量CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
研究人员Sumit Shah

摘要

ImageMagick 的 coders/tim.c 中的 ReadTIMImage 函数存在一个整数溢出漏洞。在处理 TIM(PlayStation)图像文件时,32位系统上未对用户控制的宽度和高度值进行乘法检查,导致内存分配不足,从而在像素处理阶段发生越界读取。


技术细节

受影响代码

漏洞逻辑位于 coders/tim.c:

root@kitploit:~
/* coders/tim.c - TIM Image Parser */

// User-controlled input from TIM file header
width = ReadBlobLSBShort(image);   // 2 bytes (0-65535)
height = ReadBlobLSBShort(image);  // 2 bytes (0-65535)

// VULNERABLE: Integer overflow on 32-bit systems
image_size = 2 * width * height;  // No overflow check

// Memory allocated with truncated size
pixels = (unsigned char *) AcquireQuantumMemory(image_size, sizeof(*pixels));

// Loop processes FULL dimensions, reading beyond buffer
for (y = 0; y < height; y++) {
    for (x = 0; x < width; x++) {
        pixel_index = (y * width + x) * 2;
        pixels[pixel_index] = ReadBlobByte(image);
        pixels[pixel_index + 1] = ReadBlobByte(image);
    }
}

根本原因

在32位架构上,size_t 被限制为32位,最大值为 UINT_MAX = 4,294,967,295。

当宽度和高度均设为最大16位无符号值时:

root@kitploit:~
width = 65535 (0xFFFF)
height = 65535 (0xFFFF)

预期计算:
2 × 65535 × 65535 = 8,589,869,050 字节 (~8.5 GB)

实际结果(32位回绕):
8,589,869,050 % 4,294,967,296 = 4,294,901,754
截断后结果:分配的小缓冲区

溢出导致内存分配器分配了一个远小于需求的缓冲区,而处理循环仍会遍历完整的 65535 × 65535 像素网格,从而造成越界读取。

利用

步骤1: 攻击者构造一个尺寸导致溢出的 TIM 文件

root@kitploit:~
[Magic: 0x10]
[Type: 0x02]
[Width: 0xFFFF]   # 65535
[Height: 0xFFFF]  # 65535
[Pixel Data...]

步骤2: 受害者处理恶意文件

root@kitploit:~
convert malicious.tim output.png

步骤3: 发生越界读取,导致:

  • 堆内存泄露(泄露到输出图像中,或通过时序观察)
  • 段错误(拒绝服务)

受影响平台

32位系统,其中 size_t 为32位。64位系统不受影响,因为其整数宽度足以表示计算结果而不发生溢出。


影响

信息泄露(主要): 越界访问期间,可读取 ImageMagick 进程的堆内存。该内存可能包含:

  • 先前处理的图像数据
  • 环境变量
  • 文件路径
  • 缓存的凭据(在多租户环境中)

泄露的数据可嵌入到转换后的输出图像中,或通过侧信道分析提取。

拒绝服务(次要): 读取未映射的内存区域会触发 SIGSEGV,导致 ImageMagick 进程终止,并在自动化图像处理管道中造成服务中断。


概念验证

技术细节仅供验证目的。不包含可执行的利用代码。

触发条件

  • ImageMagick 版本 < 7.1.2-10,为32位架构编译
  • 经过恶意构造的 TIM 文件,头部字节指定 width=65535、height=65535
  • 通过 convert、magick 或任何 ImageMagick API 调用进行处理

预期行为(存在漏洞)

root@kitploit:~
$ convert malicious.tim output.png
Segmentation fault (core dumped)

或成功转换,但输出图像中嵌入了泄露的堆数据。

预期行为(已修复)

root@kitploit:~
$ convert malicious.tim output.png
convert: Memory allocation failed `malicious.tim' @ error/tim.c/ReadTIMImage/XXX.

修复措施

对于管理员

将 ImageMagick 更新至 7.1.2-10 或更高版本:

root@kitploit:~
# 验证当前版本
convert --version

# 使用包管理器更新
apt update && apt upgrade imagemagick      # Debian/Ubuntu
yum update imagemagick                     # RHEL/CentOS
brew upgrade imagemagick                   # macOS

对于开发者

在算术运算前实施溢出检查:

root@kitploit:~
// 不安全
image_size = 2 * width * height;

// 安全
if (height != 0 && width > (SIZE_MAX / 2) / height) {
    ThrowReaderException(ResourceLimitError, "MemoryAllocationFailed");
}
image_size = 2 * width * height;

在执行计算前,对尺寸值应用输入验证和合理范围限制。


参考

  • CVE 记录: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-66628
  • GitHub 安全公告: https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-6hjr-v6g4-3fm8
  • ImageMagick 仓库: https://github.com/ImageMagick/ImageMagick
  • CWE-190: https://cwe.mitre.org/data/definitions/190.html

发现方法

该漏洞是通过变体分析发现的。在发现 ImageMagick 的 BMP 解码器中存在类似的整数溢出漏洞后,对旧版格式解析器进行了系统性审查。通过模式匹配未检查的 width * height 计算,识别出 TIM 解析器中存在相同的缺陷。

旧版图像格式解码器(TIM、SGI、VIFF 等)由于安全审计频率较低且依赖不安全的 C 算术运算,成为高价值目标。


负责任的披露

该漏洞已通过 GitHub 安全公告私下报告给 ImageMagick 维护者。仅在补丁可用并分配 CVE 后才进行公开披露。本次研究基于负责任的披露原则,以合乎道德的方式进行。

发现者

SUMIT SHAH

研究人员: SUMIT SHAH

  • 领英: linkedin.com/in/sumit-shah-614625350
  • Instagram: @hacksagex
下载工具