Skip to main content

Boteraser | Website and Server Security Solutions

🛡️ JLSEC-2026-916 — imagemagick-jll (CVE-2025-53014)

⚪ Unknown ✅ No Known Exploit OSV
N/A
CVSS Score
0 Low4 Medium7 High9 Critical10

Description

ImageMagick has a Heap Buffer Overflow in InterpretImageFilename

# Heap Buffer Overflow in InterpretImageFilename

Summary

A heap buffer overflow was identified in the InterpretImageFilename function of ImageMagick. The issue stems from an off-by-one error that causes out-of-bounds memory access when processing format strings containing consecutive percent signs (%%).

Environment

  • OS: Arch Linux (Linux gmkhost 6.14.2-arch1-1 # 1 SMP PREEMPT_DYNAMIC Thu, 10 Apr 2025 18:43:59 +0000 x86_64 GNU/Linux (GNU libc) 2.41)
  • Architecture: x86_64
  • Compiler: gcc (GCC) 15.1.1 20250425

Reproduction

Build Instructions

```bash

# Clone the repository

git clone https://github.com/ImageMagick/ImageMagick.git

cd ImageMagick

git reset --hard 8fff9b4f44d2e8b5cae2bd6db70930a144d15f12

# Build with AddressSanitizer

export CFLAGS="-fsanitize=address -g -O1"

export CXXFLAGS="-fsanitize=address -g -O1"

export LDFLAGS="-fsanitizer=address"

./configure

make

# Set library path and trigger the crash

export LD_LIBRARY_PATH="$(pwd)/MagickWand/.libs:$(pwd)/MagickCore/.libs:$LD_LIBRARY_PATH"

./utilities/.libs/magick %% a

```

Minimum Trigger

```bash

./utilities/.libs/magick %% [any_output_filename]

```

Crash Analysis

AddressSanitizer Output

```

$ ./utilities/.libs/magick %% a

=================================================================

==2227694==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x7037f99e3ad3 at pc 0x741801e81a17 bp 0x7ffd22fa4e00 sp 0x7ffd22fa45b8

READ of size 1 at 0x7037f99e3ad3 thread T0

#0 0x741801e81a16 in strchr /usr/src/debug/gcc/gcc/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:746

#1 0x7418013b4f06 in InterpretImageFilename MagickCore/image.c:1674

#2 0x7418012826a3 in ReadImages MagickCore/constitute.c:1040

#3 0x741800e4696b in CLINoImageOperator MagickWand/operation.c:4959

#4 0x741800e64de7 in CLIOption MagickWand/operation.c:5473

#5 0x741800d92edf in ProcessCommandOptions MagickWand/magick-cli.c:653

#6 0x741800d94816 in MagickImageCommand MagickWand/magick-cli.c:1392

#7 0x741800d913e4 in MagickCommandGenesis MagickWand/magick-cli.c:177

#8 0x5ef7a3546638 in MagickMain utilities/magick.c:162

#9 0x5ef7a3546872 in main utilities/magick.c:193

#10 0x7417ff53f6b4 (/usr/lib/libc.so.6+0x276b4) (BuildId: 468e3585c794491a48ea75fceb9e4d6b1464fc35)

#11 0x7417ff53f768 in __libc_start_main (/usr/lib/libc.so.6+0x27768) (BuildId: 468e3585c794491a48ea75fceb9e4d6b1464fc35)

#12 0x5ef7a3546204 in _start (/home/kforfk/workspace/fuzz_analysis/saigen/ImageMagick/utilities/.libs/magick+0x2204) (BuildId: 96677b60628cf297eaedb3eb17b87000d29403f2)

0x7037f99e3ad3 is located 0 bytes after 3-byte region [0x7037f99e3ad0,0x7037f99e3ad3)

allocated by thread T0 here:

#0 0x741801f20e15 in malloc /usr/src/debug/gcc/gcc/libsanitizer/asan/asan_malloc_linux.cpp:67

#1 0x7418013e86bc in AcquireMagickMemory MagickCore/memory.c:559

SUMMARY: AddressSanitizer: heap-buffer-overflow MagickCore/image.c:1674 in InterpretImageFilename

Shadow bytes around the buggy address:

0x7037f99e3800: fa fa 07 fa fa fa 00 fa fa fa fd fa fa fa fd fa

0x7037f99e3880: fa fa 07 fa fa fa 00 fa fa fa fd fa fa fa fd fa

0x7037f99e3900: fa fa 07 fa fa fa 00 fa fa fa fd fa fa fa fd fa

0x7037f99e3980: fa fa 07 fa fa fa 00 fa fa fa fd fa fa fa fd fa

0x7037f99e3a00: fa fa 07 fa fa fa fd fa fa fa fd fa fa fa 00 04

=>0x7037f99e3a80: fa fa 00 04 fa fa 00 00 fa fa[03]fa fa fa 03 fa

0x7037f99e3b00: fa fa 00 01 fa fa fa fa fa fa fa fa fa fa fa fa

0x7037f99e3b80: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa

0x7037f99e3c00: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa

0x7037f99e3c80: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa

0x7037f99e3d00: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa

Shadow byte legend (one shadow byte represents 8 application bytes):

Addressable: 00

Partially addressable: 01 02 03 04 05 06 07

Heap left redzone: fa

Freed heap region: fd

Stack left redzone: f1

Stack mid redzone: f2

Stack right redzone: f3

Stack after return: f5

Stack use after scope: f8

Global redzone: f9

Global init order: f6

Poisoned by user: f7

Container overflow: fc

Array cookie: ac

Intra object redzone: bb

ASan internal: fe

Left alloca redzone: ca

Right alloca redzone: cb

==2227694==ABORTING

```

Root Cause Analysis

The first command line argument is interpreted as MagickImageCommand:

https://github.com/ImageMagick/ImageMagick/blob/8fff9b4f44d2e8b5cae2bd6db70930a144d15f12/utilities/magick.c#L83

```c

const CommandInfo

MagickCommands[] =

{

MagickCommandSize("magick", MagickFalse, MagickImageCommand),

```

It is invoked here:

https://github.com/ImageMagick/ImageMagick/blob/8fff9b4f44d2e8b5cae2bd6db70930a144d15f12/MagickWand/magick-cli.c#L220

```c

status=command(image_info,arg

How this vulnerability can be exploited

This issue can be reached over the network, attack complexity is low, an attacker needs no privileges on the target. No user interaction is required. The scope is unchanged, so the impact stays within the vulnerable component. Rated impact: confidentiality high, integrity high, availability high.

CVSS metrics in full

The score comes from this vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

  • Attack vector: Network — reachable from anywhere that can route to the service.
  • Attack complexity: Low — the attack works reliably, with no preparation.
  • Privileges required: None — an unauthenticated stranger can try it.
  • User interaction: None — nobody has to be tricked into anything.
  • Scope: Unchanged — the damage stays inside the vulnerable component.
  • Confidentiality impact: High — total loss, or loss the attacker controls.
  • Integrity impact: High — total loss, or loss the attacker controls.
  • Availability impact: High — total loss, or loss the attacker controls.

Affected software

JLSEC-2026-916 is recorded against 1 package.

  • imagemagick-jll

Timeline and source

Published on 30 July 2026. No public exploit is currently recorded for this entry. Record sourced from OSV.

References

github.com (Web)
github.com (Web)
github.com (Web)
github.com (Web)
github.com (Web)
lists.debian.org (Web)
nvd.nist.gov (Web)

Other advisories for this package

imagemagick-jll has other advisories on record. If you are patching this one, these are worth checking on the same host:

Details

Severity Unknown
CVSS Score N/A
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CWE N/A
Public Exploit ✅ No
Source OSV
Published 2026-07-30
Updated 2026-08-20
Modified 2026-07-30
Fix URL N/A

Affected Packages

Software From version Fixed in
imagemagick-jll — —

Similar Threats

Free Vulnerability Check

Is your site affected by JLSEC-2026-916?

BotEraser helps you identify potentially vulnerable plugins and themes by checking your installation against JLSEC-2026-916 and other known CVE records.

Scan My Site Free →

No credit card required  ·  Results in minutes

ⓘ Data Notice: The information presented above has been compiled from publicly available internet sources. Boteraser aggregates this data solely for informational purposes and does not independently classify, evaluate, or endorse any findings about the vulnerabilities listed. The accuracy and completeness of this information is the sole responsibility of the original publishers. Boteraser and its operators accept no liability for any decisions made based on this data.

Browse related advisories

All advisoriesJlsecJlsec 2026
✓