ImageMagick 易受TIM解码器中整数溢出的攻击,导致越界读取(仅限32位系统)
漏洞详情
ImageMagick 的 TIM(PSX TIM)图像解析器中存在一个关键的整数溢出漏洞,位于 ReadTIMImage 函数(文件:coders/tim.c)。代码从文件头读取宽度和高度(16位值),并在不检查溢出的情况下计算 image_size = 2 * width * height。
在32位系统(或 size_t 为32位的系统)上,如果宽度和高度值很大(例如65535),此计算可能溢出并回绕为一个小值。这导致通过 AcquireQuantumMemory 进行的小堆分配,而后依赖该维度的后续操作可能触发越界读取。
受影响的包及版本
多个 Magick.NET NuGet 包受到影响:
| 包名 | 受影响版本 | 已修复版本 |
|---|---|---|
| Magick.NET-Q16-AnyCPU | < 14.10.0 | 14.10.0 |
| Magick.NET-Q16-HDRI-AnyCPU | < 14.10.0 | 14.10.0 |
| Magick.NET-Q16-HDRI-x86 | < 14.10.0 | 14.10.0 |
| Magick.NET-Q16-x86 | < 14.10.0 | 14.10.0 |
| Magick.NET-Q8-AnyCPU | < 14.10.0 | 14.10.0 |
| Magick.NET-Q8-x86 | < 14.10.0 | 14.10.0 |
脆弱代码
文件: coders/tim.c
|
|
影响
此漏洞可导致任意内存泄露,原因是在32位系统上发生了越界读取。
严重性
此漏洞被评定为高危,CVSS v3.1 基准得分为 7.5。
CVSS v3.1 基准向量: AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
- 攻击向量: 网络
- 攻击复杂度: 低
- 所需权限: 无
- 用户交互: 无
- 范围: 未改变
- 机密性影响: 高
- 完整性影响: 无
- 可用性影响: 无
相关标识符
- CVE ID: CVE-2025-66628
- GHSA ID: GHSA-6hjr-v6g4-3fm8
弱点
CWE-125: 越界读取 - 产品读取了超过预期缓冲区末尾或起始之前的数据。
参考信息
- GHSA-6hjr-v6g4-3fm8
- dlemstra/Magick.NET@2dfa08e
来源
- 源码仓库:ImageMagick/ImageMagick
致谢
此漏洞由 Sumitshah00 报告。