ImageMagick is free and open-source software used for editing and manipulating digital images. Prior to versions 6.9.13-28 and 7.1.2-2 for ImageMagicks 32-bit build, a 32-bit integer overflow in the BMP encoder’s scanline-stride computation collapses bytes_per_line (stride) to a tiny value while the per-row writer still emits 3 × width bytes for 24-bpp images. The row base pointer advances using the (overflowed) stride, so the first row immediately writes past its slot and into adjacent heap memory with attacker-controlled bytes. This is a classic, powerful primitive for heap corruption in common auto-convert pipelines. This issue has been patched in versions 6.9.13-28 and 7.1.2-2.
A heap overflow condition is a buffer overflow, where the buffer that can be overwritten is allocated in the heap portion of memory, generally meaning that the buffer was allocated using a routine such as malloc().
Name | Vendor | Start Version | End Version |
---|---|---|---|
Imagemagick | Imagemagick | * | 6.9.13-28 (excluding) |
Imagemagick | Imagemagick | 7.0.0-0 (including) | 7.1.2-2 (excluding) |
Red Hat Enterprise Linux 7 Extended Lifecycle Support | RedHat | ImageMagick-0:6.9.10.68-9.el7_9 | * |
Imagemagick | Ubuntu | esm-apps/focal | * |
Imagemagick | Ubuntu | esm-apps/jammy | * |
Imagemagick | Ubuntu | esm-apps/noble | * |
Imagemagick | Ubuntu | esm-infra-legacy/trusty | * |
Imagemagick | Ubuntu | esm-infra/bionic | * |
Imagemagick | Ubuntu | esm-infra/xenial | * |
Imagemagick | Ubuntu | jammy | * |
Imagemagick | Ubuntu | noble | * |
Imagemagick | Ubuntu | plucky | * |
Imagemagick | Ubuntu | upstream | * |