Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSubmit crafted CALS image to service
-
DeliveryImageMagick invokes CALS decoder
-
ExploitMalformed header triggers unbounded recursion
-
ExecutionCall stack exhausted
-
ImpactProcess terminates (denial of service)
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Recursion depth limits
|
| Exploitation Conditions | Exploitation requires the target application to accept and decode an attacker-supplied image through ImageMagick's CALS (Type 1 raster) decoder specifically - the vulnerable code path is coders/cals.c (ReadCALSImage). Limiting factors: the service must be configured to process the CALS format (a niche military/CAD raster format, not among the common JPEG/PNG types), and impact is confined to crashing the single decoding process rather than persistent compromise. No authentication is required per PR:N, and no user interaction per UI:N, so any endpoint that auto-processes uploaded images into which CALS content can be injected is reachable by remote unauthenticated attackers against default configurations, provided CALS decoding is not disabled via policy.xml. |
| Impact | This is a moderate-severity denial-of-service issue, not a high-priority emergency. The input CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L, 5.3) correctly reflects availability-only impact: a crafted CALS image exhausts the call stack and terminates only the processing worker (C:N/I:N - no data exposure or code execution). No EPSS score, no CISA KEV listing, and no public POC were provided, so there is no evidence of active or probable exploitation - exploitation status is 'no public exploit identified at time of analysis.' The signals are internally consistent: a low-impact crash bug in a widely-used library with no exploitation telemetry. One data discrepancy must be flagged: the description attributes the crash to a 'missing recursion-depth check' (consistent with CWE-674), but the actual fix shown in both commit diffs adds a header-field sanity check (rejecting width/height/type/orientation/density of zero or wrong type) rather than a recursion-depth guard - verify the true root cause against the GHSA advisory. Real-world priority is low-to-moderate: patch in routine cycles, prioritizing any internet-facing service that accepts untrusted image uploads. |
| Exploit ScenarioDerived | An attacker uploads or submits a specially crafted CALS raster image to a web application or service that uses ImageMagick to process user-supplied images. When ImageMagick's CALS decoder parses the malformed header, unbounded recursion (or a malformed field passed to downstream processing) exhausts the call stack and crashes the worker process, denying service to legitimate users. No public exploit code was identified, and the attack requires the target to actually invoke the CALS decoder on attacker-controlled input. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 07, 2026
Uncontrolled recursion in ImageMagick's CALS decoder lets a crafted CALS image exhaust the call stack and terminate the decoding process, giving remote unauthenticated attackers a low-impact denial of service (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L). All ImageMagick releases prior to 7.1.2-30 (7.x branch) and prior to 6.9.13-55 (6.x branch) are affected; the vulnerable code path is coders/cals.c (ReadCALSImage). No public exploit code or confirmed active exploitation has been identified at time of analysis, and the practical reach is limited because the target must actually accept and decode the niche CALS Type 1 raster format rather than common JPEG/PNG inputs.
RemediationAI
Vendor-released patches are available: upgrade to ImageMagick 7.1.2-30 or later on the 7.x branch, or to 6.9.13-55 or later on the 6.x branch, which contain the CALS header-validation fix in coders/cals.c (commits 19bce64e3667ff03 for 7.x and 0ca580238abba18910cfee0fcc3159621fec0dee for 6.x); see the advisory at https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-wxw6-98rj-hjfr and the release notes linked above. If immediate upgrading is not possible, disable the CALS coder via policy.xml (a coder='CALS' entry with rights='none') or strip the CALS delegate/module from the build - the trade-off is that any legitimate CALS processing will break, which is acceptable where the format is not part of normal business input. Additional compensating controls include restricting ingestion to an allow-list of expected formats and re-encoding or validating uploads before they reach ImageMagick, and confining decoding to a low-privilege, resource-limited worker (ulimit/stack limits, container memory and CPU caps, policy.xml width/height/area limits) so that a stack-exhaustion abort only kills that disposable process instead of a shared service; note that these limits reduce but do not eliminate the crash. Note that the CALS formats are not typically required for mainstream upload paths, so disabling the coder is a low-cost mitigation for most deployments.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is an instance of CWE-674 (Uncontrolled Recursion) in ImageMagick's CALS image reader, implemented in coders/cals.c within ReadCALSImage. CALS (Continuous Acquisition and Life-cycle Support, Type 1 raster) is a legacy raster format used largely in military, CAD and technical-documentation workflows and is not part of the mainstream JPEG/PNG/GIF surface most deployments exercise. Because the recursive parsing path lacks a recursion-depth check, a malformed file drives unbounded recursion until the stack is exhausted, aborting the process rather than corrupting memory or allowing code execution. The upstream fix referenced in the advisory is a header-validation change in the same function: it rejects images where width, height, type, orientation or density are invalid (zero, or type other than 1) by throwing CorruptImageError 'ImproperImageHeader' before deep parsing proceeds, across both the ImageMagick 7 commit 19bce64e3667ff03 and the ImageMagick6 commit 0ca580238abba18910cfee0fcc3159621fec0dee. The CVSS vector (AV:N/AC:L/PR:N/UI:N, scope unchanged, C:N/I:N, A:L only) and the independent assessment agree the impact is confined to crashing the single decoding process, not to persistent compromise or data exposure.
Know when Imagemagick gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Remote untrusted image reaches the decoder without auth or interaction (AV:N/AC:L/PR:N/UI:N); impact is a single-process crash only, so C:N/I:N/A:L.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
ImageMagick is free and open-source software used for editing and manipulating digital images. Prior to 7.1.2-30 and 6.9.13-55, a missing recursion-depth check in the CALS decoder allows a crafted CALS image to exhaust the call stack and terminate the process. This issue is fixed in versions 7.1.2-30 and 6.9.13-55.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
More in Imagemagick
View allThe (1) EPHEMERAL, (2) HTTPS, (3) MVG, (4) MSL, (5) TEXT, (6) SHOW, (7) WIN, and (8) PLT coders in ImageMagick before 6.
The (1) HTTP and (2) FTP coders in ImageMagick before 6.9.3-10 and 7.x before 7.0.1-1 allow remote attackers to conduct
The EPHEMERAL coder in ImageMagick before 6.9.3-10 and 7.x before 7.0.1-1 allows remote attackers to delete arbitrary fi
ReadGIFImage in coders/gif.c in ImageMagick 7.0.6-1 and GraphicsMagick 1.3.26 leaves the palette uninitialized when proc
Integer overflow in MagickCore/profile.c in ImageMagick before 7.0.2-1 allows remote attackers to cause a denial of serv
The LABEL coder in ImageMagick before 6.9.3-10 and 7.x before 7.0.1-1 allows remote attackers to read arbitrary files vi
The OpenBlob function in blob.c in GraphicsMagick before 1.3.24 and ImageMagick allows remote attackers to execute arbit
The DCM reader in ImageMagick before 6.9.4-5 and 7.x before 7.0.1-7 allows remote attackers to have unspecified impact b
The ReadDCMImage function in DCM reader in ImageMagick before 6.9.4-5 and 7.x before 7.0.1-7 allows remote attackers to
The DCM reader in ImageMagick before 6.9.4-5 and 7.x before 7.0.1-7 allows remote attackers to have unspecified impact b
ImageMagick 7.0.6-5 has a memory leak vulnerability in ReadWEBPImage in coders/webp.c because memory is not freed in cer
Heap buffer overflow in ImageMagick's XBM image decoder (ReadXBMImage) lets remote attackers write attacker-controlled d
EUVD-2026-94391
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB