Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

github логотип

GHSA-5vx3-wx4q-6cj8

Опубликовано: 21 янв. 2026
Источник: github
Github: Прошло ревью
CVSS3: 6.5

Описание

ImageMagick has a NULL pointer dereference in MSL parser via tag before image load

Summary

NULL pointer dereference in MSL (Magick Scripting Language) parser when processing <comment> tag before any image is loaded.

Version

  • ImageMagick 7.x (tested on current main branch)
  • Commit: HEAD

Steps to Reproduce

Method 1: Using ImageMagick directly

magick MSL:poc.msl out.png

Method 2: Using OSS-Fuzz reproduce

python3 infra/helper.py build_fuzzers imagemagick python3 infra/helper.py reproduce imagemagick msl_fuzzer poc.msl

Or run the fuzzer directly:

./msl_fuzzer poc.msl

Expected Behavior

ImageMagick should handle the malformed MSL gracefully and return an error message.

Actual Behavior

convert: MagickCore/property.c:297: MagickBooleanType DeleteImageProperty(Image *, const char *): Assertion `image != (Image *) NULL' failed. Aborted

Root Cause Analysis

In coders/msl.c:7091, MSLEndElement() calls DeleteImageProperty() on msl_info->image[n] when handling the </comment> end tag without checking if the image is NULL:

if (LocaleCompare((const char *) tag,"comment") == 0 ) { (void) DeleteImageProperty(msl_info->image[n],"comment"); // No NULL check ... }

When <comment> appears before any <read> operation, msl_info->image[n] is NULL, causing the assertion failure in DeleteImageProperty() at property.c:297.

Impact

  • DoS: Crash via assertion failure (debug builds) or NULL pointer dereference (release builds)
  • Affected: Any application using ImageMagick to process user-supplied MSL files

Fuzzer

This issue was discovered using a custom MSL fuzzer:

#include <cstdint> #include <Magick++/Blob.h> #include <Magick++/Image.h> #include "utils.cc" extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { if (IsInvalidSize(Size)) return(0); try { const Magick::Blob blob(Data, Size); Magick::Image image; image.magick("MSL"); image.fileName("MSL:"); image.read(blob); } catch (Magick::Exception) { } return(0); }

This issue was found by Team FuzzingBrain @ Texas A&M University

Пакеты

Наименование

Magick.NET-Q8-x64

nuget
Затронутые версииВерсия исправления

< 14.10.2

14.10.2

Наименование

Magick.NET-Q8-arm64

nuget
Затронутые версииВерсия исправления

< 14.10.2

14.10.2

Наименование

Magick.NET-Q8-x86

nuget
Затронутые версииВерсия исправления

< 14.10.2

14.10.2

Наименование

Magick.NET-Q8-OpenMP-x64

nuget
Затронутые версииВерсия исправления

< 14.10.2

14.10.2

Наименование

Magick.NET-Q8-OpenMP-arm64

nuget
Затронутые версииВерсия исправления

< 14.10.2

14.10.2

Наименование

Magick.NET-Q16-x64

nuget
Затронутые версииВерсия исправления

< 14.10.2

14.10.2

Наименование

Magick.NET-Q16-arm64

nuget
Затронутые версииВерсия исправления

< 14.10.2

14.10.2

Наименование

Magick.NET-Q16-x86

nuget
Затронутые версииВерсия исправления

< 14.10.2

14.10.2

Наименование

Magick.NET-Q16-OpenMP-x64

nuget
Затронутые версииВерсия исправления

< 14.10.2

14.10.2

Наименование

Magick.NET-Q16-OpenMP-arm64

nuget
Затронутые версииВерсия исправления

< 14.10.2

14.10.2

Наименование

Magick.NET-Q16-OpenMP-x86

nuget
Затронутые версииВерсия исправления

< 14.10.2

14.10.2

Наименование

Magick.NET-Q16-HDRI-x64

nuget
Затронутые версииВерсия исправления

< 14.10.2

14.10.2

Наименование

Magick.NET-Q16-HDRI-arm64

nuget
Затронутые версииВерсия исправления

< 14.10.2

14.10.2

Наименование

Magick.NET-Q16-HDRI-x86

nuget
Затронутые версииВерсия исправления

< 14.10.2

14.10.2

Наименование

Magick.NET-Q16-HDRI-OpenMP-x64

nuget
Затронутые версииВерсия исправления

< 14.10.2

14.10.2

Наименование

Magick.NET-Q16-HDRI-OpenMP-arm64

nuget
Затронутые версииВерсия исправления

< 14.10.2

14.10.2

Наименование

Magick.NET-Q8-AnyCPU

nuget
Затронутые версииВерсия исправления

< 14.10.2

14.10.2

Наименование

Magick.NET-Q16-AnyCPU

nuget
Затронутые версииВерсия исправления

< 14.10.2

14.10.2

Наименование

Magick.NET-Q16-HDRI-AnyCPU

nuget
Затронутые версииВерсия исправления

< 14.10.2

14.10.2

EPSS

Процентиль: 13%
0.00044
Низкий

6.5 Medium

CVSS3

Дефекты

CWE-476

Связанные уязвимости

CVSS3: 6.5
ubuntu
17 дней назад

ImageMagick is free and open-source software used for editing and manipulating digital images. Versions 14.10.1 and below have a NULL pointer dereference vulnerability in the MSL (Magick Scripting Language) parser when processing <comment> tags before images are loaded. This can lead to DoS attack due to assertion failure (debug builds) or NULL pointer dereference (release builds). This issue is fixed in version 14.10.2.

CVSS3: 6.5
nvd
17 дней назад

ImageMagick is free and open-source software used for editing and manipulating digital images. Versions 14.10.1 and below have a NULL pointer dereference vulnerability in the MSL (Magick Scripting Language) parser when processing <comment> tags before images are loaded. This can lead to DoS attack due to assertion failure (debug builds) or NULL pointer dereference (release builds). This issue is fixed in version 14.10.2.

CVSS3: 6.5
debian
17 дней назад

ImageMagick is free and open-source software used for editing and mani ...

suse-cvrf
4 дня назад

Security update for ImageMagick

EPSS

Процентиль: 13%
0.00044
Низкий

6.5 Medium

CVSS3

Дефекты

CWE-476