Low

ImageMagick has a Memory Leak in magick stream

  • Disclosed: 25.08.2025
  • Updated: 11.10.2026 11:23

Summary

In ImageMagick's magick stream command, specifying multiple consecutive %d format specifiers in a filename template causes a memory leak.

Details

  • Vulnerability Type: Memory leak
  • Affected Version: ImageMagick 7.1.1-47 (as of commit 82572afc, June 2025)

Reproduction

Tested Environment

  • Operating System: Ubuntu 22.04 LTS
  • Architecture: x86_64
  • Compiler: gcc with AddressSanitizer (gcc version: 11.4.0)

Reproduction Steps

bash
# Clone source
git clone --depth 1 --branch 7.1.1-47 https://github.com/ImageMagick/ImageMagick.git ImageMagick-7.1.1
cd ImageMagick-7.1.1

# Build with ASan
CFLAGS="-g -O0 -fsanitize=address -fno-omit-frame-pointer" CXXFLAGS="$CFLAGS" LDFLAGS="-fsanitize=address" ./configure --enable-maintainer-mode --enable-shared && make -j$(nproc) && make install

# Trigger crash
./utilities/magick stream %d%d a a

Output

bash
$ magick stream %d%d a a
stream: no decode delegate for this image format `' @ error/constitute.c/ReadImage/746.
stream: missing an image filename `a' @ error/stream.c/StreamImageCommand/755.

=================================================================
==114==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 152 byte(s) in 1 object(s) allocated from:
    #0 0x7fc4ebe58887 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
    #1 0x7fc4eb563c5c in AcquireMagickMemory MagickCore/memory.c:559
    #2 0x7fc4eb563c82 in AcquireCriticalMemory MagickCore/memory.c:635
    #3 0x7fc4eb60c2be in AcquireQuantumInfo MagickCore/quantum.c:119
    #4 0x7fc4eb6b6621 in StreamImage MagickCore/stream.c:1335
    #5 0x7fc4eb09d889 in StreamImageCommand MagickWand/stream.c:292
    #6 0x7fc4eaf1295d in MagickCommandGenesis MagickWand/magick-cli.c:177
    #7 0x55a34f7c0a0c in MagickMain utilities/magick.c:153
    #8 0x55a34f7c0cba in main utilities/magick.c:184
    #9 0x7fc4ea38fd8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58

Indirect leak of 64 byte(s) in 1 object(s) allocated from:
    #0 0x7fc4ebe5957c in __interceptor_posix_memalign ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:226
    #1 0x7fc4eb680e2f in AcquireSemaphoreMemory MagickCore/semaphore.c:154
    #2 0x7fc4eb680f30 in AcquireSemaphoreInfo MagickCore/semaphore.c:200
    #3 0x7fc4eb60d38d in GetQuantumInfo MagickCore/quantum.c:435
    #4 0x7fc4eb60c30e in AcquireQuantumInfo MagickCore/quantum.c:121
    #5 0x7fc4eb6b6621 in StreamImage MagickCore/stream.c:1335
    #6 0x7fc4eb09d889 in StreamImageCommand MagickWand/stream.c:292
    #7 0x7fc4eaf1295d in MagickCommandGenesis MagickWand/magick-cli.c:177
    #8 0x55a34f7c0a0c in MagickMain utilities/magick.c:153
    #9 0x55a34f7c0cba in main utilities/magick.c:184
    #10 0x7fc4ea38fd8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58

SUMMARY: AddressSanitizer: 216 byte(s) leaked in 2 allocation(s).

Commits

Fixed in https://github.com/ImageMagick/ImageMagick/commit/fc3ab0812edef903bbb2473c0ee652ddfd04fe5c and https://github.com/ImageMagick/ImageMagick6/commit/d49460522669232159c2269fa64f73ed30555c1b

Affected software

Click a technology to see all vulnerabilities affecting it.

PlatformPackageVulnerable versionsFixed in
.NET (NuGet) Magick.NET-Q16-AnyCPU < 14.7.0 14.7.0
.NET (NuGet) Magick.NET-Q16-arm64 < 14.7.0 14.7.0
.NET (NuGet) Magick.NET-Q16-HDRI-AnyCPU < 14.7.0 14.7.0
.NET (NuGet) Magick.NET-Q16-HDRI-arm64 < 14.7.0 14.7.0
.NET (NuGet) Magick.NET-Q16-HDRI-OpenMP-arm64 < 14.7.0 14.7.0
.NET (NuGet) Magick.NET-Q16-HDRI-OpenMP-x64 < 14.7.0 14.7.0
.NET (NuGet) Magick.NET-Q16-HDRI-x64 < 14.7.0 14.7.0
.NET (NuGet) Magick.NET-Q16-HDRI-x86 < 14.7.0 14.7.0
.NET (NuGet) Magick.NET-Q16-OpenMP-arm64 < 14.7.0 14.7.0
.NET (NuGet) Magick.NET-Q16-OpenMP-x64 < 14.7.0 14.7.0
.NET (NuGet) Magick.NET-Q16-x64 < 14.7.0 14.7.0
.NET (NuGet) Magick.NET-Q16-x86 < 14.7.0 14.7.0
.NET (NuGet) Magick.NET-Q8-AnyCPU < 14.7.0 14.7.0
.NET (NuGet) Magick.NET-Q8-arm64 < 14.7.0 14.7.0
.NET (NuGet) Magick.NET-Q8-OpenMP-arm64 < 14.7.0 14.7.0
.NET (NuGet) Magick.NET-Q8-OpenMP-x64 < 14.7.0 14.7.0
.NET (NuGet) Magick.NET-Q8-x64 < 14.7.0 14.7.0
.NET (NuGet) Magick.NET-Q8-x86 < 14.7.0 14.7.0

References

CVSS score 3.7/10
CVSS vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
Weakness (CWE)
CWE-125, CWE-401, CWE-404
Platform
.NET (NuGet)
Package
Magick.NET-Q16-AnyCPU, Magick.NET-Q16-arm64, Magick.NET-Q16-HDRI-AnyCPU
Disclosed
25.08.2025
Updated
11.10.2026 11:23

Sources and licenses

OSV / GitHub Advisory Database - GHSA-cfh4-9f7v-fhrc - CC BY 4.0

Vulnerability history: Magick.NET-Q16-HDRI-x64

All published vulnerabilities of this package (.NET (NuGet)), newest first. Shows whether this is a one-off slip or a package that needs watching.

All (160) in the archive
Total entries
160
First → latest
07.2025 09.2026
Without a fix
1
Exploited in attacks
0

Severity breakdown

  • High 24
  • Medium 96
  • Low 40

Disclosures per year

  1. 2025: 14
  2. 2026: 146
Severity:
  1. ImageMagick has a Memory Leak in magick stream this entry
    Low · 3.7 CVE-2025-53019 < 14.7.0 14.7.0
  2. High · 7.5 CVE-2026-53460 < 14.14.0 14.14.0
  3. High · 7.5 CVE-2026-33901 < 14.12.0 14.12.0
  4. High · 7.5 CVE-2026-33908 < 14.12.0 14.12.0
  5. High · 7.7 CVE-2026-30929 < 14.10.4 14.10.4
  6. High · 7.5 CVE-2026-28691 < 14.10.4 14.10.4
  7. High · 7.5 CVE-2026-24485 < 14.10.3 14.10.3
Show more (4) Showing 21 of 25

Know which vulnerabilities affect your application

With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.

Connect your application
DockRay newsletter

Application security in your inbox

Important vulnerabilities, actionable guidance and practical advice for your applications. Choose your technologies and follow what matters to your project.

  • A daily digest of new vulnerabilities, critical ones included.
  • Notifications about important updates.
  • Practical advice on application security and monitoring.

Leave empty to receive updates for every technology.

Free to subscribe. Unsubscribe with one click in any email.