CVE-2026-23874
No CISA KEV listing is included in this saved record. Exploitation may still have occurred.
FIRST EPSS: 0.19 % · percentile 8.43 % · scored 15 Nov 2026.
Saved 15 Nov 2026 14:45:34 UTC · View this risk record (JSON)
No access to your tenant or devices. Every item links to its source. What this means
CISA KEV lists vulnerabilities known to be exploited. FIRST EPSS estimates the likelihood of exploitation in the next 30 days. An unavailable score does not mean zero risk.
This view includes predictions for CVE identifiers explicitly listed in public NuGet advisories. Microsoft release pages have their own prediction coverage. Check source status for the scope and latest checks.
No CISA KEV listing is included in this saved record. Exploitation may still have occurred.
FIRST EPSS: 0.19 % · percentile 8.43 % · scored 15 Nov 2026.
Saved 15 Nov 2026 14:45:34 UTC · View this risk record (JSON)
ImageMagick is free and open-source software used for editing and manipulating digital images. Versions prior to 7.1.2-13 have a stack overflow via infinite recursion in MSL (Magick Scripting Language) `<write>` command when writing to MSL format. Version 7.1.2-13 fixes the issue.
Original source record · Cite this exact observation · Complete original publisher JSON
Source: cve-program · CVE Program Terms of Use. The publisher's wording is preserved. ChangeIntel groups the information and labels changes. The JSON record includes additional source fields.
CVSS 3.1 · 5.5 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
ImageMagick is free and open-source software used for editing and manipulating digital images. Versions prior to 7.1.2-13 have a stack overflow via infinite recursion in MSL (Magick Scripting Language) `<write>` command when writing to MSL format. Version 7.1.2-13 fixes the issue.
EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON.
datePublished: Jan 20, 2026, 12:52:52 AM
dateUpdated: Jan 20, 2026, 9:43:48 PM
openSUSE-SU-2026:10119-1: ImageMagick-7.1.2.13-2.1 on GA media
CVE-2026-22770 · CVE-2026-23874 · CVE-2026-23876 · CVE-2026-23952
openSUSE-SU-2026:20337-1: Security update for ImageMagick
CVE-2026-22770 · CVE-2026-23874 · CVE-2026-23876 · CVE-2026-23952 · CVE-2026-24481 · CVE-2026-24484 · CVE-2026-24485 · CVE-2026-25576 · CVE-2026-25637 · CVE-2026-25638 · CVE-2026-25794 · CVE-2026-25795 · CVE-2026-25796 · CVE-2026-25797 · CVE-2026-25798 · CVE-2026-25799 · CVE-2026-25897 · CVE-2026-25898 · CVE-2026-25965 · CVE-2026-25966 · CVE-2026-25967 · CVE-2026-25968 · CVE-2026-25969 · CVE-2026-25970 · CVE-2026-25971 · CVE-2026-25982 · CVE-2026-25983 · CVE-2026-25985 · CVE-2026-25986 · CVE-2026-25987 · CVE-2026-25988 · CVE-2026-25989 · CVE-2026-26066 · CVE-2026-26283 · CVE-2026-26284 · CVE-2026-26983 · CVE-2026-27798 · CVE-2026-27799
SUSE-SU-2026:0503-1: Security update for ImageMagick
CVE-2026-23874 · CVE-2026-23876 · CVE-2026-23952
SUSE-SU-2026:0384-1: Security update for ImageMagick
CVE-2026-23874 · CVE-2026-23876 · CVE-2026-23952
SUSE-SU-2026:0437-1: Security update for ImageMagick
CVE-2026-22770 · CVE-2026-23874 · CVE-2026-23876 · CVE-2026-23952
SUSE-SU-2026:0438-1: Security update for ImageMagick
CVE-2026-22770 · CVE-2026-23874 · CVE-2026-23876 · CVE-2026-23952
WID-SEC-W-2026-0148: ImageMagick: Mehrere Schwachstellen
CVE-2026-22770 · CVE-2026-23874 · CVE-2026-23876 · CVE-2026-23952
Original source record · Cite this exact observation · Complete original publisher JSON
Source: euvd · ENISA EUVD · source terms and attribution apply. The publisher's wording is preserved. ChangeIntel groups the information and labels changes. The JSON record includes additional source fields.
EUVD CVSS 3.1 · 5.5 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
ImageMagick is free and open-source software used for editing and manipulating digital images. Versions prior to 7.1.2-13 have a stack overflow via infinite recursion in MSL (Magick Scripting Language) `<write>` command when writing to MSL format. Version 7.1.2-13 fixes the issue.
NVD analysis and CPE criteria are source context, not proof that a package or your environment is affected. Complete affected data, logical configurations and SSVC are retained in the original JSON.
Source analysis status: Analyzed
Weakness classifications: CWE-835
published: 2026-01-20T01:15:57.300
lastModified: 2026-06-17T10:22:14.233
The original JSON retains the logical configuration operators, exclusions and version bounds.
Original source record · Cite this exact observation · Complete original publisher JSON
Source: nvd · NIST NVD usage terms; underlying source attribution retained. The publisher's wording is preserved. ChangeIntel groups the information and labels changes. The JSON record includes additional source fields.
CVSS 3.1 · [email protected] · Secondary · 5.5 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
## 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
Original source record · Cite this exact observation · Complete original publisher JSON
Source: osv · GitHub Advisory Database · CC-BY-4.0. The publisher's wording is preserved. ChangeIntel groups the information and labels changes. The JSON record includes additional source fields.
CVSS_V3 · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Publisher rating · MODERATE