NIST deprecates RSA-2048 from 2030. Find every one of them before attackers do.
.NET
.NET NuGet
Not in CISA KEV
MEDIUM severity

CVE-2026-23952 — Magick.NET-Q8-x64

MEDIUM

CVE-2026-23952 is a medium-severity (CVSS 6.5) NULL Pointer Dereference vulnerability in Magick.NET-Q8-x64. A fix is available for Magick.NET-Q8-x64 — see the affected versions and patch details below.

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

Also known asGHSA-5vx3-wx4q-6cj8
Published
Updated
Affected
19 pkgs
Patched
19 / 19
Exploits
None indexed
Exploitation data as of Nov 4, 2026 · OSV.dev, NVD, FIRST.org (EPSS)

Exploitation Status

Proof-of-concept exploit code exists

  • CISA’s SSVC triage found public proof-of-concept exploit code for this CVE, though no confirmed active exploitation.

Exploitation and automatability from CISA’s SSVC triage for CVE-2026-23952.

EPSS Exploitation Probability

via FIRST.org ↗
0.5%probability of exploitation in next 30 days
Lower Risk0.00%
Lower risk than most CVEs41th percentile — riskier than 41% of all scored CVEsHighest risk
0.00%0.33%0.65%0.98%0.0%0.5%May 26Sep 26Nov 26

Probability of exploitation in the next 30 days, from FIRST.org EPSS.

How urgent is this, really

Where this sits among everything scored

Real-World Exposure

19 pkgs affected
.NETMagick.NET-Q8-x64.NETMagick.NET-Q8-arm64.NETMagick.NET-Q8-x86.NETMagick.NET-Q8-OpenMP-x64.NETMagick.NET-Q8-OpenMP-arm64.NETMagick.NET-Q16-x64.NETMagick.NET-Q16-arm64.NETMagick.NET-Q16-x86+11 more

Real-time download stats are indexed for npm and PyPI packages. This vulnerability affects NuGet packages — download data is not available via public APIs for these ecosystems.

Description

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

Affected Packages

19 total 19 fixed
EcosystemPackageVulnerable rangeFix
.NETNuGetMagick.NET-Q8-x64all versions14.10.2dotnet add package Magick.NET-Q8-x64 --version 14.10.2
.NETNuGetMagick.NET-Q8-arm64all versions14.10.2dotnet add package Magick.NET-Q8-arm64 --version 14.10.2
.NETNuGetMagick.NET-Q8-x86all versions14.10.2dotnet add package Magick.NET-Q8-x86 --version 14.10.2
.NETNuGetMagick.NET-Q8-OpenMP-x64all versions14.10.2dotnet add package Magick.NET-Q8-OpenMP-x64 --version 14.10.2
.NETNuGetMagick.NET-Q8-OpenMP-arm64all versions14.10.2dotnet add package Magick.NET-Q8-OpenMP-arm64 --version 14.10.2
.NETNuGetMagick.NET-Q16-x64all versions14.10.2dotnet add package Magick.NET-Q16-x64 --version 14.10.2

Affected Products

2 products · 3 configurations
Application
magick.netdlemstra
< 14.10.2
range
Application
imagemagickimagemagick
≥ 7.0.0-0 && < 7.1.2-13
range

Detection & mitigation playbook

Open-source dependency
  1. Detect

    Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for Magick.NET-Q8-x64, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.

  2. Fix

    Update Magick.NET-Q8-x64 to 14.10.2 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2026-23952 is resolved across your whole dependency graph.

  3. Workarounds

    Cap what an attacker can consume: apply request size, rate and timeout limits in front of the affected component, and run it with memory and CPU limits so exhaustion degrades one worker rather than the whole service.

Fixing This On Your OS

If you run this on a Linux distribution, patch through your package manager against the distro's own security advisory below — it tracks the exact backported fix for your release, which can ship on a different timeline (and sometimes a different severity) than the upstream project.

Red HatModerate

This vulnerability is rated Moderate for Red Hat products. A NULL pointer dereference flaw exists in ImageMagick's MSL parser when processing <comment> tags before image loading. This could allow an attacker to cause a Denial of Service (DoS) by providing a specially crafted image file. This affects ImageMagick…

Workaround published by Red Hat
To mitigate this issue, users should avoid processing untrusted or specially crafted MSL (Magick Scripting Language) files with ImageMagick. Restricting the sources of MSL files and ensuring that ImageMagick only processes trusted input can reduce the risk of exploitation. If ImageMagick is used in an automated pipeline, consider implementing sandboxing mechanisms to limit the impact of potential denial-of-service attacks.
Source: Red Hat security advisory for CVE-2026-23952 (CC BY 4.0)

Frequently Asked Questions

## 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 ```bash magick MSL:poc.msl out.png ``` ### Method 2: Using OSS-Fuzz reproduce ```bash python3 infra/helper.py build_fuzzers imagemagick python3 infra/helper.py reproduce imagemagick msl_fuzzer poc.msl ``` Or run the fuzzer directly: ```bash ./msl_fuzzer poc.msl ``` ## Expected Behavior ImageMagick should handle
O3 Security · Impact-Aware SCA

Is CVE-2026-23952 in your dependencies?

Find it across NuGet, including transitive dependencies.

CVE-2026-23952: Magick.NET-Q8 DoS — Fixed in 14.10.2