Out-of-bounds read In magick.net-q16-hdri-x86
Description
ImageMagick is vulnerable to an integer Overflow in TIM decoder leading to out of bounds read (32-bit only)
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
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.
Mitigation
Update Impact
Minimal update. May introduce new vulnerabilities or breaking changes.
Ecosystem | Package | Affected version | Patched versions |
|---|---|---|---|
nuget | 14.10.0 | ||
nuget | 14.10.0 | ||
nuget | 14.10.0 | ||
nuget | 14.10.0 | ||
debian 11 | 8:6.9.11.60+dfsg-1.3+deb11u8 | ||
debian 14 | 8:7.1.2.12+dfsg1-1 | ||
debian 13 | 8:7.1.1.43+dfsg1-1+deb13u4 | ||
debian 12 | 8:6.9.11.60+dfsg-1.6+deb12u5 | ||
nuget | 14.10.0 | ||
nuget | 14.10.0 |
1-10 of 12
10
Aliases
References