GitHub Advisoryadvisory · NuGet
GHSA-6hjr-v6g4-3fm8 ImageMagick is vulnerable to an integer Overflow in TIM decoder leading to out of bounds read (32-bit only)
HIGH
Official page ↗
- Aliases
- CVE-2025-66628
- Ecosystem
- NuGet
- Packages
- Magick.NET-Q16-AnyCPU, Magick.NET-Q16-HDRI-AnyCPU, Magick.NET-Q16-HDRI-x86, Magick.NET-Q16-x86, Magick.NET-Q8-AnyCPU, Magick.NET-Q8-x86
- Severity
- High
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
- Weaknesses
- CWE-125
- Reviewed
- 2025-12-10
Affected packages
• NuGet Magick.NET-Q16-AnyCPU: < 14.10.0 → fixed in 14.10.0
• NuGet Magick.NET-Q16-HDRI-AnyCPU: < 14.10.0 → fixed in 14.10.0
• NuGet Magick.NET-Q16-HDRI-x86: < 14.10.0 → fixed in 14.10.0
• NuGet Magick.NET-Q16-x86: < 14.10.0 → fixed in 14.10.0
• NuGet Magick.NET-Q8-AnyCPU: < 14.10.0 → fixed in 14.10.0
• NuGet Magick.NET-Q8-x86: < 14.10.0 → fixed in 14.10.0
Description
Summary
The TIM (PSX TIM) image parser in ImageMagick contains a critical integer overflow vulnerability in the `ReadTIMImage` function (`coders/tim.c`). The code reads `width` and `height` (16-bit values) from the file header and calculates `image_size = 2 * width * height` without checking for overflow.
On 32-bit systems (or where `size_t` is 32-bit), this calculation can overflow if `width` and `height` are large (e.g., 65535), wrapping around to a small value. This results in a small heap allocation via `AcquireQuantumMemory` and later operations relying on the dimensions can trigger an out of bounds read.
Vulnerable Code
File: `coders/tim.c`
```c
width=ReadBlobLSBShort(image);
height=ReadBlobLSBShort(image);
image_size=2*width*height; // Line 234 - NO OVERFLOW CHECK!
```
Impact
This vulnerability can lead to Arbitrary Memory Disclosure due to an out of bounds read on 32-bit systems.
Related
Alias · CVE (1)
- CVE-2025-66628 ImageMagick is a software suite to create, edit, compose, or convert bitmap images. vulnerability
Weakness · CWE (1)
- CWE-125 Out-of-bounds Read weakness