Lookup for vulnerable packages by Package URL.

Purlpkg:nuget/Magick.NET-Q8-OpenMP-x64@14.10.2
Typenuget
Namespace
NameMagick.NET-Q8-OpenMP-x64
Version14.10.2
Qualifiers
Subpath
Is_vulnerablefalse
Next_non_vulnerable_version14.10.3
Latest_non_vulnerable_version14.12.0
Affected_by_vulnerabilities
Fixing_vulnerabilities
0
url VCID-569d-6nue-5kbq
vulnerability_id VCID-569d-6nue-5kbq
summary
ImageMagick releases an invalid pointer in BilateralBlur when memory allocation fails
The BilateralBlurImage method will allocate a set of double buffers inside AcquireBilateralTLS. But the last element in the set is not properly initialized. This will result in a release of an invalid pointer inside DestroyBilateralTLS when the memory allocation fails.
references
0
reference_url https://access.redhat.com/hydra/rest/securitydata/cve/CVE-2026-22770.json
reference_id
reference_type
scores
0
value 6.5
scoring_system cvssv3
scoring_elements CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H
url https://access.redhat.com/hydra/rest/securitydata/cve/CVE-2026-22770.json
1
reference_url https://api.first.org/data/v1/epss?cve=CVE-2026-22770
reference_id
reference_type
scores
0
value 0.00067
scoring_system epss
scoring_elements 0.20739
published_at 2026-05-14T12:55:00Z
1
value 0.00067
scoring_system epss
scoring_elements 0.20883
published_at 2026-04-09T12:55:00Z
2
value 0.00067
scoring_system epss
scoring_elements 0.20898
published_at 2026-04-11T12:55:00Z
3
value 0.00067
scoring_system epss
scoring_elements 0.20855
published_at 2026-04-12T12:55:00Z
4
value 0.00067
scoring_system epss
scoring_elements 0.20803
published_at 2026-04-13T12:55:00Z
5
value 0.00067
scoring_system epss
scoring_elements 0.20793
published_at 2026-04-16T12:55:00Z
6
value 0.00067
scoring_system epss
scoring_elements 0.20785
published_at 2026-04-18T12:55:00Z
7
value 0.00067
scoring_system epss
scoring_elements 0.2077
published_at 2026-04-21T12:55:00Z
8
value 0.00067
scoring_system epss
scoring_elements 0.20651
published_at 2026-04-24T12:55:00Z
9
value 0.00067
scoring_system epss
scoring_elements 0.20647
published_at 2026-04-26T12:55:00Z
10
value 0.00067
scoring_system epss
scoring_elements 0.20613
published_at 2026-04-29T12:55:00Z
11
value 0.00067
scoring_system epss
scoring_elements 0.20506
published_at 2026-05-05T12:55:00Z
12
value 0.00067
scoring_system epss
scoring_elements 0.20578
published_at 2026-05-07T12:55:00Z
13
value 0.00067
scoring_system epss
scoring_elements 0.20665
published_at 2026-05-09T12:55:00Z
14
value 0.00067
scoring_system epss
scoring_elements 0.20639
published_at 2026-05-11T12:55:00Z
15
value 0.00067
scoring_system epss
scoring_elements 0.20655
published_at 2026-05-12T12:55:00Z
16
value 0.00067
scoring_system epss
scoring_elements 0.2097
published_at 2026-04-02T12:55:00Z
17
value 0.00067
scoring_system epss
scoring_elements 0.21028
published_at 2026-04-04T12:55:00Z
18
value 0.00067
scoring_system epss
scoring_elements 0.20743
published_at 2026-05-15T12:55:00Z
19
value 0.00067
scoring_system epss
scoring_elements 0.20822
published_at 2026-04-08T12:55:00Z
url https://api.first.org/data/v1/epss?cve=CVE-2026-22770
2
reference_url https://ftp.suse.com/pub/projects/security/yaml/suse-cvss-scores.yaml
reference_id
reference_type
scores
0
value 6.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H
url https://ftp.suse.com/pub/projects/security/yaml/suse-cvss-scores.yaml
3
reference_url https://github.com/dlemstra/Magick.NET/releases/tag/14.10.2
reference_id
reference_type
scores
0
value 6.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/dlemstra/Magick.NET/releases/tag/14.10.2
4
reference_url https://github.com/ImageMagick/ImageMagick
reference_id
reference_type
scores
0
value 6.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/ImageMagick/ImageMagick
5
reference_url https://github.com/ImageMagick/ImageMagick/commit/3e0330721020e0c5bb52e4b77c347527dd71658e
reference_id
reference_type
scores
0
value 6.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H
1
value MODERATE
scoring_system generic_textual
scoring_elements
2
value Track
scoring_system ssvc
scoring_elements SSVCv2/E:N/A:N/T:P/P:M/B:A/M:M/D:T/2026-01-21T20:05:17Z/
url https://github.com/ImageMagick/ImageMagick/commit/3e0330721020e0c5bb52e4b77c347527dd71658e
6
reference_url https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-39h3-g67r-7g3c
reference_id
reference_type
scores
0
value 6.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H
1
value MODERATE
scoring_system cvssv3.1_qr
scoring_elements
2
value MODERATE
scoring_system generic_textual
scoring_elements
3
value Track
scoring_system ssvc
scoring_elements SSVCv2/E:N/A:N/T:P/P:M/B:A/M:M/D:T/2026-01-21T20:05:17Z/
url https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-39h3-g67r-7g3c
7
reference_url https://nvd.nist.gov/vuln/detail/CVE-2026-22770
reference_id
reference_type
scores
0
value 6.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://nvd.nist.gov/vuln/detail/CVE-2026-22770
8
reference_url https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1126074
reference_id 1126074
reference_type
scores
url https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1126074
9
reference_url https://bugzilla.redhat.com/show_bug.cgi?id=2431037
reference_id 2431037
reference_type
scores
url https://bugzilla.redhat.com/show_bug.cgi?id=2431037
10
reference_url https://github.com/advisories/GHSA-39h3-g67r-7g3c
reference_id GHSA-39h3-g67r-7g3c
reference_type
scores
0
value MODERATE
scoring_system cvssv3.1_qr
scoring_elements
url https://github.com/advisories/GHSA-39h3-g67r-7g3c
fixed_packages
0
url pkg:nuget/Magick.NET-Q8-OpenMP-x64@14.10.2
purl pkg:nuget/Magick.NET-Q8-OpenMP-x64@14.10.2
is_vulnerable false
affected_by_vulnerabilities
resource_url http://public2.vulnerablecode.io/packages/pkg:nuget/Magick.NET-Q8-OpenMP-x64@14.10.2
aliases CVE-2026-22770, GHSA-39h3-g67r-7g3c
risk_score 3.1
exploitability 0.5
weighted_severity 6.2
resource_url http://public2.vulnerablecode.io/vulnerabilities/VCID-569d-6nue-5kbq
1
url VCID-6meg-yjby-a7gj
vulnerability_id VCID-6meg-yjby-a7gj
summary
ImageMagick has a Memory Leak in LoadOpenCLDeviceBenchmark() when parsing malformed XML
### Summary

A memory leak vulnerability exists in the `LoadOpenCLDeviceBenchmark()` function in `MagickCore/opencl.c`. When parsing a malformed OpenCL device profile XML file that contains `<device` elements without proper `/>` closing tags, the function fails to release allocated memory for string members (`platform_name`, `vendor_name`, `name`, `version`), leading to memory leaks that could result in resource exhaustion.

**Affected Version**: ImageMagick 7.1.2-12 and possibly earlier versions

---

### Details

The vulnerability is located in `MagickCore/opencl.c`, function `LoadOpenCLDeviceBenchmark()` (lines 754-911).

**Root Cause Analysis:**

1. When a `<device` tag is encountered, a `MagickCLDeviceBenchmark` structure is allocated (line 807-812)
2. String attributes (`platform`, `vendor`, `name`, `version`) are allocated via `ConstantString()` (lines 878, 885, 898, 900)
3. These strings are **only freed** when a `/>` closing tag is encountered (lines 840-849)
4. At function exit (lines 908-910), only the `device_benchmark` structure is freed, but **its member variables are not freed** if `/>` was never parsed

**Vulnerable Code (lines 908-910):**

```c
token=(char *) RelinquishMagickMemory(token);
device_benchmark=(MagickCLDeviceBenchmark *) RelinquishMagickMemory(
  device_benchmark);  // BUG: members (platform_name, vendor_name, name, version) not freed!
```

**Correct cleanup (only executed when `/>` is found, lines 840-849):**

```c
device_benchmark->platform_name=(char *) RelinquishMagickMemory(device_benchmark->platform_name);
device_benchmark->vendor_name=(char *) RelinquishMagickMemory(device_benchmark->vendor_name);
device_benchmark->name=(char *) RelinquishMagickMemory(device_benchmark->name);
device_benchmark->version=(char *) RelinquishMagickMemory(device_benchmark->version);
device_benchmark=(MagickCLDeviceBenchmark *) RelinquishMagickMemory(device_benchmark);
```

---

### PoC

**Environment:**
- OS: Ubuntu 22.04.5 LTS (Linux 6.8.0-87-generic x86_64)
- Compiler: GCC 11.4.0
- ImageMagick: 7.1.2-13 (commit `a52c1b402be08ef8ae193f28ac5b2e120f2fa26f`)

**Step 1: Build ImageMagick with AddressSanitizer**

```bash
cd ImageMagick
./configure \
    CFLAGS="-g -O0 -fsanitize=address -fno-omit-frame-pointer" \
    CXXFLAGS="-g -O0 -fsanitize=address -fno-omit-frame-pointer" \
    LDFLAGS="-fsanitize=address" \
    --disable-openmp
make -j$(nproc)
```

**Step 2: Create malformed XML file**

**Step 3: Place file in OpenCL cache directory**

```bash
mkdir -p ~/.cache/ImageMagick
cp malformed_opencl_profile.xml ~/.cache/ImageMagick/ImagemagickOpenCLDeviceProfile.xml
```

**Step 4: Run ImageMagick with leak detection**

```bash
export ASAN_OPTIONS="detect_leaks=1:symbolize=1"
./utilities/magick -size 100x100 xc:red output.png
```

**ASAN Output:**

```
=================================================================
==2543490==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 96 byte(s) in 2 object(s) allocated from:
    #0 ... in AcquireMagickMemory MagickCore/memory.c:536
    #1 ... in LoadOpenCLDeviceBenchmark MagickCore/opencl.c:807

Direct leak of 16 byte(s) in 1 object(s) allocated from:
    #0 ... in ConstantString MagickCore/string.c:692
    #1 ... in LoadOpenCLDeviceBenchmark MagickCore/opencl.c:878  ← name

Direct leak of 14 byte(s) in 1 object(s) allocated from:
    #0 ... in ConstantString MagickCore/string.c:692
    #1 ... in LoadOpenCLDeviceBenchmark MagickCore/opencl.c:885  ← platform_name

Direct leak of 14 byte(s) in 1 object(s) allocated from:
    #0 ... in ConstantString MagickCore/string.c:692
    #1 ... in LoadOpenCLDeviceBenchmark MagickCore/opencl.c:898  ← vendor_name

Direct leak of 15 byte(s) in 1 object(s) allocated from:
    #0 ... in ConstantString MagickCore/string.c:692
    #1 ... in LoadOpenCLDeviceBenchmark MagickCore/opencl.c:900  ← version

SUMMARY: AddressSanitizer: 203 byte(s) leaked in 18 allocation(s).
```

---

### Impact

**Vulnerability Type:** CWE-401 (Missing Release of Memory after Effective Lifetime)

**Severity:** Low

**Who is impacted:**
- Users who have OpenCL enabled in ImageMagick
- Systems where an attacker can place or modify files in the OpenCL cache directory (`~/.cache/ImageMagick/`)
- Long-running ImageMagick processes or services that repeatedly initialize OpenCL

**Potential consequences:**
- Memory exhaustion over time if the malformed configuration is repeatedly loaded
- Denial of Service (DoS) in resource-constrained environments

**Attack Vector:** Local - requires write access to the user's OpenCL cache directory
references
0
reference_url https://github.com/dlemstra/Magick.NET/releases/tag/14.10.2
reference_id
reference_type
scores
0
value 6.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/dlemstra/Magick.NET/releases/tag/14.10.2
1
reference_url https://github.com/ImageMagick/ImageMagick
reference_id
reference_type
scores
0
value 6.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/ImageMagick/ImageMagick
2
reference_url https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-qp59-x883-77qv
reference_id
reference_type
scores
0
value 6.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H
1
value MODERATE
scoring_system cvssv3.1_qr
scoring_elements
2
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-qp59-x883-77qv
3
reference_url https://github.com/advisories/GHSA-qp59-x883-77qv
reference_id GHSA-qp59-x883-77qv
reference_type
scores
0
value MODERATE
scoring_system cvssv3.1_qr
scoring_elements
url https://github.com/advisories/GHSA-qp59-x883-77qv
fixed_packages
0
url pkg:nuget/Magick.NET-Q8-OpenMP-x64@14.10.2
purl pkg:nuget/Magick.NET-Q8-OpenMP-x64@14.10.2
is_vulnerable false
affected_by_vulnerabilities
resource_url http://public2.vulnerablecode.io/packages/pkg:nuget/Magick.NET-Q8-OpenMP-x64@14.10.2
aliases GHSA-qp59-x883-77qv
risk_score 3.1
exploitability 0.5
weighted_severity 6.2
resource_url http://public2.vulnerablecode.io/vulnerabilities/VCID-6meg-yjby-a7gj
2
url VCID-h221-qd8d-tqa5
vulnerability_id VCID-h221-qd8d-tqa5
summary
ImageMagick has a NULL pointer dereference in MSL parser via <comment> 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

```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 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:

```c
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:

```cpp
#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
references
0
reference_url https://access.redhat.com/hydra/rest/securitydata/cve/CVE-2026-23952.json
reference_id
reference_type
scores
0
value 6.5
scoring_system cvssv3
scoring_elements CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
url https://access.redhat.com/hydra/rest/securitydata/cve/CVE-2026-23952.json
1
reference_url https://api.first.org/data/v1/epss?cve=CVE-2026-23952
reference_id
reference_type
scores
0
value 0.00021
scoring_system epss
scoring_elements 0.05949
published_at 2026-05-15T12:55:00Z
1
value 0.00021
scoring_system epss
scoring_elements 0.05525
published_at 2026-04-18T12:55:00Z
2
value 0.00021
scoring_system epss
scoring_elements 0.0569
published_at 2026-04-21T12:55:00Z
3
value 0.00021
scoring_system epss
scoring_elements 0.05726
published_at 2026-04-24T12:55:00Z
4
value 0.00021
scoring_system epss
scoring_elements 0.05762
published_at 2026-04-26T12:55:00Z
5
value 0.00021
scoring_system epss
scoring_elements 0.05768
published_at 2026-04-29T12:55:00Z
6
value 0.00021
scoring_system epss
scoring_elements 0.05776
published_at 2026-05-05T12:55:00Z
7
value 0.00021
scoring_system epss
scoring_elements 0.05853
published_at 2026-05-07T12:55:00Z
8
value 0.00021
scoring_system epss
scoring_elements 0.05919
published_at 2026-05-09T12:55:00Z
9
value 0.00021
scoring_system epss
scoring_elements 0.0593
published_at 2026-05-11T12:55:00Z
10
value 0.00021
scoring_system epss
scoring_elements 0.05933
published_at 2026-05-12T12:55:00Z
11
value 0.00021
scoring_system epss
scoring_elements 0.05938
published_at 2026-05-14T12:55:00Z
12
value 0.00021
scoring_system epss
scoring_elements 0.05517
published_at 2026-04-16T12:55:00Z
13
value 0.00021
scoring_system epss
scoring_elements 0.05553
published_at 2026-04-07T12:55:00Z
14
value 0.00021
scoring_system epss
scoring_elements 0.0559
published_at 2026-04-08T12:55:00Z
15
value 0.00021
scoring_system epss
scoring_elements 0.05615
published_at 2026-04-09T12:55:00Z
16
value 0.00021
scoring_system epss
scoring_elements 0.05586
published_at 2026-04-11T12:55:00Z
17
value 0.00021
scoring_system epss
scoring_elements 0.05576
published_at 2026-04-12T12:55:00Z
18
value 0.00021
scoring_system epss
scoring_elements 0.05569
published_at 2026-04-13T12:55:00Z
url https://api.first.org/data/v1/epss?cve=CVE-2026-23952
2
reference_url https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-23952
reference_id
reference_type
scores
url https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-23952
3
reference_url https://ftp.suse.com/pub/projects/security/yaml/suse-cvss-scores.yaml
reference_id
reference_type
scores
0
value 6.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
url https://ftp.suse.com/pub/projects/security/yaml/suse-cvss-scores.yaml
4
reference_url https://github.com/dlemstra/Magick.NET/releases/tag/14.10.2
reference_id
reference_type
scores
0
value 6.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
1
value MODERATE
scoring_system generic_textual
scoring_elements
2
value Track
scoring_system ssvc
scoring_elements SSVCv2/E:P/A:N/T:P/P:M/B:A/M:M/D:T/2026-01-22T21:43:24Z/
url https://github.com/dlemstra/Magick.NET/releases/tag/14.10.2
5
reference_url https://github.com/ImageMagick/ImageMagick
reference_id
reference_type
scores
0
value 6.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/ImageMagick/ImageMagick
6
reference_url https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-5vx3-wx4q-6cj8
reference_id
reference_type
scores
0
value 6.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
1
value MODERATE
scoring_system cvssv3.1_qr
scoring_elements
2
value MODERATE
scoring_system generic_textual
scoring_elements
3
value Track
scoring_system ssvc
scoring_elements SSVCv2/E:P/A:N/T:P/P:M/B:A/M:M/D:T/2026-01-22T21:43:24Z/
url https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-5vx3-wx4q-6cj8
7
reference_url https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1126077
reference_id 1126077
reference_type
scores
url https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1126077
8
reference_url https://bugzilla.redhat.com/show_bug.cgi?id=2431905
reference_id 2431905
reference_type
scores
url https://bugzilla.redhat.com/show_bug.cgi?id=2431905
9
reference_url https://nvd.nist.gov/vuln/detail/CVE-2026-23952
reference_id CVE-2026-23952
reference_type
scores
url https://nvd.nist.gov/vuln/detail/CVE-2026-23952
10
reference_url https://github.com/advisories/GHSA-5vx3-wx4q-6cj8
reference_id GHSA-5vx3-wx4q-6cj8
reference_type
scores
0
value MODERATE
scoring_system cvssv3.1_qr
scoring_elements
url https://github.com/advisories/GHSA-5vx3-wx4q-6cj8
11
reference_url https://usn.ubuntu.com/8127-1/
reference_id USN-8127-1
reference_type
scores
url https://usn.ubuntu.com/8127-1/
fixed_packages
0
url pkg:nuget/Magick.NET-Q8-OpenMP-x64@14.10.2
purl pkg:nuget/Magick.NET-Q8-OpenMP-x64@14.10.2
is_vulnerable false
affected_by_vulnerabilities
resource_url http://public2.vulnerablecode.io/packages/pkg:nuget/Magick.NET-Q8-OpenMP-x64@14.10.2
aliases CVE-2026-23952, GHSA-5vx3-wx4q-6cj8
risk_score 3.1
exploitability 0.5
weighted_severity 6.2
resource_url http://public2.vulnerablecode.io/vulnerabilities/VCID-h221-qd8d-tqa5
3
url VCID-vaks-d4k5-zue7
vulnerability_id VCID-vaks-d4k5-zue7
summary
ImageMagick MSL: Stack overflow via infinite recursion in ProcessMSLScript
## Summary

Stack overflow via infinite recursion in MSL (Magick Scripting Language) `<write>` command when writing to MSL format.

## Version

- ImageMagick 7.x (tested on current main branch)
- Commit: HEAD
- Requires: libxml2 support (for MSL parsing)

## Steps to Reproduce

### Method 1: Using ImageMagick directly

```bash
magick MSL:recursive.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 recursive.msl
```

Or run the fuzzer directly:
```bash
./msl_fuzzer recursive.msl
```

## Expected Behavior

ImageMagick should handle recursive MSL references gracefully by detecting the loop and returning an error.

## Actual Behavior

Stack overflow causes process crash:

```
AddressSanitizer:DEADLYSIGNAL
==PID==ERROR: AddressSanitizer: stack-overflow
    #0 MSLStartElement /src/imagemagick/coders/msl.c:7045
    #1 xmlParseStartTag /src/libxml2/parser.c
    #2 xmlParseChunk /src/libxml2/parser.c:11273
    #3 ProcessMSLScript /src/imagemagick/coders/msl.c:7405
    #4 WriteMSLImage /src/imagemagick/coders/msl.c:7867
    #5 WriteImage /src/imagemagick/MagickCore/constitute.c:1346
    #6 MSLStartElement /src/imagemagick/coders/msl.c:7045
    ... (infinite recursion, 287+ frames)
```

## Root Cause Analysis

In `coders/msl.c`, the `<write>` command handler in `MSLStartElement()` (line ~7045) calls `WriteImage()`. When the output filename specifies MSL format (`msl:filename`), `WriteMSLImage()` is called, which parses the MSL file again via `ProcessMSLScript()`.

If the MSL file references itself (directly or indirectly), this creates an infinite recursion loop:

```
MSLStartElement() → WriteImage() → WriteMSLImage() → ProcessMSLScript()
    → xmlParseChunk() → MSLStartElement() → ... (infinite loop)
```

## Impact

- **DoS**: Guaranteed crash via stack exhaustion
- **Affected**: Any application using ImageMagick to process user-supplied MSL files

## Additional Trigger Paths

The `<read>` command can also trigger recursion:

Indirect recursion is also possible (a.msl → b.msl → a.msl).

## Fuzzer

This issue was discovered using a custom MSL fuzzer:

```cpp
#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
references
0
reference_url https://access.redhat.com/hydra/rest/securitydata/cve/CVE-2026-23874.json
reference_id
reference_type
scores
0
value 5.5
scoring_system cvssv3
scoring_elements CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
url https://access.redhat.com/hydra/rest/securitydata/cve/CVE-2026-23874.json
1
reference_url https://api.first.org/data/v1/epss?cve=CVE-2026-23874
reference_id
reference_type
scores
0
value 0.00019
scoring_system epss
scoring_elements 0.05366
published_at 2026-05-15T12:55:00Z
1
value 0.00019
scoring_system epss
scoring_elements 0.05041
published_at 2026-04-16T12:55:00Z
2
value 0.00019
scoring_system epss
scoring_elements 0.05046
published_at 2026-04-18T12:55:00Z
3
value 0.00019
scoring_system epss
scoring_elements 0.05194
published_at 2026-04-21T12:55:00Z
4
value 0.00019
scoring_system epss
scoring_elements 0.05225
published_at 2026-04-24T12:55:00Z
5
value 0.00019
scoring_system epss
scoring_elements 0.05267
published_at 2026-04-26T12:55:00Z
6
value 0.00019
scoring_system epss
scoring_elements 0.05271
published_at 2026-04-29T12:55:00Z
7
value 0.00019
scoring_system epss
scoring_elements 0.0526
published_at 2026-05-05T12:55:00Z
8
value 0.00019
scoring_system epss
scoring_elements 0.05309
published_at 2026-05-07T12:55:00Z
9
value 0.00019
scoring_system epss
scoring_elements 0.05353
published_at 2026-05-09T12:55:00Z
10
value 0.00019
scoring_system epss
scoring_elements 0.05361
published_at 2026-05-11T12:55:00Z
11
value 0.00019
scoring_system epss
scoring_elements 0.05359
published_at 2026-05-12T12:55:00Z
12
value 0.00019
scoring_system epss
scoring_elements 0.05363
published_at 2026-05-14T12:55:00Z
13
value 0.00019
scoring_system epss
scoring_elements 0.05051
published_at 2026-04-02T12:55:00Z
14
value 0.00019
scoring_system epss
scoring_elements 0.0508
published_at 2026-04-04T12:55:00Z
15
value 0.00019
scoring_system epss
scoring_elements 0.05101
published_at 2026-04-07T12:55:00Z
16
value 0.00019
scoring_system epss
scoring_elements 0.05134
published_at 2026-04-08T12:55:00Z
17
value 0.00019
scoring_system epss
scoring_elements 0.0515
published_at 2026-04-09T12:55:00Z
18
value 0.00019
scoring_system epss
scoring_elements 0.05125
published_at 2026-04-11T12:55:00Z
19
value 0.00019
scoring_system epss
scoring_elements 0.05108
published_at 2026-04-12T12:55:00Z
20
value 0.00019
scoring_system epss
scoring_elements 0.05093
published_at 2026-04-13T12:55:00Z
url https://api.first.org/data/v1/epss?cve=CVE-2026-23874
2
reference_url https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-23874
reference_id
reference_type
scores
url https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-23874
3
reference_url https://ftp.suse.com/pub/projects/security/yaml/suse-cvss-scores.yaml
reference_id
reference_type
scores
0
value 5.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
url https://ftp.suse.com/pub/projects/security/yaml/suse-cvss-scores.yaml
4
reference_url https://github.com/dlemstra/Magick.NET/releases/tag/14.10.2
reference_id
reference_type
scores
0
value 5.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/dlemstra/Magick.NET/releases/tag/14.10.2
5
reference_url https://github.com/ImageMagick/ImageMagick
reference_id
reference_type
scores
0
value 5.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/ImageMagick/ImageMagick
6
reference_url https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-9vj4-wc7r-p844
reference_id
reference_type
scores
0
value 5.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
1
value MODERATE
scoring_system cvssv3.1_qr
scoring_elements
2
value MODERATE
scoring_system generic_textual
scoring_elements
3
value Track
scoring_system ssvc
scoring_elements SSVCv2/E:P/A:N/T:P/P:M/B:A/M:M/D:T/2026-01-20T21:37:11Z/
url https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-9vj4-wc7r-p844
7
reference_url https://nvd.nist.gov/vuln/detail/CVE-2026-23874
reference_id
reference_type
scores
0
value 5.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://nvd.nist.gov/vuln/detail/CVE-2026-23874
8
reference_url https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1126075
reference_id 1126075
reference_type
scores
url https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1126075
9
reference_url https://bugzilla.redhat.com/show_bug.cgi?id=2431034
reference_id 2431034
reference_type
scores
url https://bugzilla.redhat.com/show_bug.cgi?id=2431034
10
reference_url https://github.com/advisories/GHSA-9vj4-wc7r-p844
reference_id GHSA-9vj4-wc7r-p844
reference_type
scores
0
value MODERATE
scoring_system cvssv3.1_qr
scoring_elements
url https://github.com/advisories/GHSA-9vj4-wc7r-p844
fixed_packages
0
url pkg:nuget/Magick.NET-Q8-OpenMP-x64@14.10.2
purl pkg:nuget/Magick.NET-Q8-OpenMP-x64@14.10.2
is_vulnerable false
affected_by_vulnerabilities
resource_url http://public2.vulnerablecode.io/packages/pkg:nuget/Magick.NET-Q8-OpenMP-x64@14.10.2
aliases CVE-2026-23874, GHSA-9vj4-wc7r-p844
risk_score 3.1
exploitability 0.5
weighted_severity 6.2
resource_url http://public2.vulnerablecode.io/vulnerabilities/VCID-vaks-d4k5-zue7
Risk_scorenull
Resource_urlhttp://public2.vulnerablecode.io/packages/pkg:nuget/Magick.NET-Q8-OpenMP-x64@14.10.2