Skip to main content

ImageMagick EUVDEUVD-2026-97704

| CVE-2026-109260 MEDIUM
Memory Leak (CWE-401)
2026-10-12 VulnCheck GHSA-mhfm-6gqw-qjff
6.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach PNG encoding/conversion endpoint
  2. Exploit
    Flood repeated PNG encode requests under memory pressure
  3. Execution
    Trigger libpng init-failure leak path (image_info/image not freed)
  4. Impact
    Cumulatively exhaust host memory causing denial of service

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Resource cleanup, leak prevention
Exploitation Conditions

Exploitation requires repeatedly invoking ImageMagick's PNG encoder (coders/png.c WriteOnePNGImage) specifically in the state where libpng initialization fails - i.e., when png_create_write_struct/related allocation returns failure - which triggers the ResourceLimitError path that leaks the image and image_info structures. The key limiting factor is that this failure path is not reached in normal operation: libpng init failure generally requires the system to already be experiencing memory-allocation failures, so the attacker must drive the host toward memory exhaustion (for example via many concurrent or large encodes) to enter and then compound the leak. The affected surface is any application/version before 6.9.13-57 or 7.x before 7.1.2-32 that performs PNG encoding on attacker-influenced input (upload processing, thumbnailing, format conversion). No authentication is indicated by the vector (PR:N), and no user interaction is required (UI:N), but the AT:P attack requirement reflects the dependency on the induced libpng-initialization-failure condition.

Impact

This is a medium-severity availability-only issue (vendor CVSS 4.0 base 6.3) with modest real-world priority. The CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N) indicates a network-reachable, unauthenticated vector, but the AT:P flag correctly signals a non-trivial attack requirement: the leak only occurs on the error path when libpng initialization FAILS, a condition that does not arise during normal operation and typically presupposes the host is already under memory-allocation pressure. Impact is confined to availability (VC:N/VI:N/VA:L) - no confidentiality or integrity exposure, and only partial/low availability degradation via gradual memory exhaustion rather than an outright crash. No EPSS score was provided in the input, so exploitation-probability cannot be quantified; the CVE is NOT in CISA KEV and no public exploit was supplied (only the vendor patch commits). The source diff confirms the root cause (image_info/image not destroyed before ThrowWriterException), so the bug is real and well-understood, but the dependency on an induced allocation-failure state makes reliable weaponization awkward. Net: a legitimate hardening fix to apply during normal patch cycles, not an emergency - the combination of availability-only low impact, a required rare triggering condition (AT:P), and no evidence of exploitation outweighs the network-reachable unauthenticated surface.

Exploit ScenarioDerived

An attacker repeatedly submits images to an internet-facing service that re-encodes output as PNG (e.g., an upload/thumbnail or format-conversion pipeline backed by ImageMagick). By driving the host toward memory-allocation failure so that libpng initialization fails on each request, each failed encode leaks the image and image_info structures, cumulatively exhausting memory and degrading or denying service. No public proof-of-concept was provided in the input, and reliable triggering depends on inducing the allocation-failure condition.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 12, 2026

A memory leak in ImageMagick's PNG encoder (coders/png.c, WriteOnePNGImage) fails to release the image and image_info structures when libpng write-structure initialization fails, allowing any unauthenticated remote party who can repeatedly drive PNG encoding operations into that failure path to steadily exhaust process memory and cause a denial of service. Affected are all ImageMagick 6.x releases before 6.9.13-57 and 7.x releases before 7.1.2-32; the vendor has released fixed versions (6.9.13-57 and 7.1.2-32) and upstream commits, and no public exploit code was identified at time of analysis. Impact is availability-only and low in magnitude per both the vendor's CVSS 4.0 score of 6.3 and our independent CVSS 3.1 assessment of AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L, because the leak only compounds after the host is already experiencing libpng allocation failures - the practical risk is moderate and typically relevant to services that encode attacker-supplied images at scale.

RemediationAI

Upgrade to ImageMagick 6.9.13-57 or later on the 6.x line, or 7.1.2-32 or later on the 7.x line; the vendor-released patch is available and the specific upstream fixes are commits fd1b9c85f2634e34034d39016ed7542ac0a19930 (7.x) and 55346382cebdf5c5fa6c544a7df7ae4910ffb090 (6.x), both of which add the missing DestroyImageInfo/DestroyImage calls in coders/png.c. The advisory at https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-hvwf-wmm6-hvc3 should be consulted for branch-specific release artifacts; distributions that vendor ImageMagick should be tracked for backported builds since the fix is a small, low-risk change. Where immediate upgrade is not possible, the exposure is gated on libpng initialization failure, so the most effective compensating control is to prevent the process from reaching memory pressure: cap ImageMagick memory/area resource limits via policy.xml (including memory, map, width, height, and area limits) and container memory ceilings, which stops the failure path from being entered and blunts the compounding leak - the trade-off is that legitimate large-image workloads may be rejected. Additional hardening with measurable trade-offs includes limiting concurrency of PNG encode operations (reduces the rate at which an attacker can drive memory exhaustion but also reduces throughput), isolating encoding workloads in separate, restartable processes or containers so leaked memory is reclaimed on restart rather than degrading the host (adds operational overhead), and restricting PNG encoding to trusted input or offloading it to an isolated worker (may break untrusted-upload features). Note that monitoring for progressive RSS growth in image processing workers is a useful detection for this leak class. No vendor patch absence applies here - for affected deployments the limitation is solely refraining from entering the vulnerable state through the resource-limit measures above.

Affected VersionsENISA

ImageMagick 7.0.0-0 <7.1.2-32
ImageMagick 0 <6.9.13-57

Affected Packages

euvd imagemagick fix: 6.9.13-57, 7.1.2-32

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

ImageMagick's PNG coder delegates the actual write pipeline to libpng, and the vulnerability sits in the error handling around that delegation. In WriteOnePNGImage(), when libpng initialization (png_create_write_struct and associated allocations) fails, the code path raises a ResourceLimitError via ThrowWriterException without first freeing the ImageMagick image and image_info structures it had allocated for the operation - a classic CWE-401 Missing Release of Memory after Effective Lifetime. The upstream fixes for both branches (commit fd1b9c85f2634e34034d39016ed7542ac0a19930 on ImageMagick 7 and commit 55346382cebdf5c5fa6c544a7df7ae4910ffb090 on ImageMagick6) simply insert DestroyImageInfo(image_info) and DestroyImage(image) calls ahead of the exception throw in coders/png.c, confirming the leak is a per-failed-encode allocation that is never reclaimed. Because libpng initialization failure is itself usually caused by memory pressure, the bug is self-reinforcing: an attacker who can force many concurrent or oversized PNG encodes can push the process into the allocation-failure regime, at which point every subsequent failure leaks more memory instead of freeing it. The CPE strings (cpe:2.3:a:imagemagick:imagemagick) confirm the affected component is the core ImageMagick distribution rather than any downstream binding.

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

Vendor (VulnCheck) PRIMARY 6.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
vuln.today AI 3.7 LOW

Network-reachable and unauthenticated (AV:N/PR:N), but AC:H because the leak only fires when libpng initialization fails - an abnormal, hard-to-induce state; impact is availability-only and partial (A:L).

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
Red Hat 3.7 LOW

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

ImageMagick before 6.9.13-57 and 7.x before 7.1.2-32 contains a memory leak in the PNG encoder, which does not release allocated memory when libpng initialization fails. Attackers who can repeatedly trigger PNG encoding operations in which libpng initialization fails can exhaust memory and cause a denial of service.

Threat Intelligence Overview

EPSS Score
0.4%
Top 71% exploitable
Prevalence
High
ubiquitous image-processing library in web upload and conversion pipelines
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Medium

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2016-3714 HIGH POC
8.4 May 05

The (1) EPHEMERAL, (2) HTTPS, (3) MVG, (4) MSL, (5) TEXT, (6) SHOW, (7) WIN, and (8) PLT coders in ImageMagick before 6.

CVE-2016-3718 MEDIUM POC
5.5 May 05

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

CVE-2016-3715 MEDIUM POC
5.5 May 05

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

CVE-2017-15277 MEDIUM POC
6.5 Oct 12

ReadGIFImage in coders/gif.c in ImageMagick 7.0.6-1 and GraphicsMagick 1.3.26 leaves the palette uninitialized when proc

CVE-2016-5841 CRITICAL POC
9.8 Dec 13

Integer overflow in MagickCore/profile.c in ImageMagick before 7.0.2-1 allows remote attackers to cause a denial of serv

CVE-2016-3717 MEDIUM POC
5.5 May 05

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

CVE-2016-5118 CRITICAL
9.8 Jun 10

The OpenBlob function in blob.c in GraphicsMagick before 1.3.24 and ImageMagick allows remote attackers to execute arbit

CVE-2016-5689 CRITICAL POC
9.8 Dec 13

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

CVE-2016-5690 CRITICAL POC
9.8 Dec 13

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

CVE-2016-5691 CRITICAL POC
9.8 Dec 13

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

CVE-2017-14138 CRITICAL POC
9.8 Sep 04

ImageMagick 7.0.6-5 has a memory leak vulnerability in ReadWEBPImage in coders/webp.c because memory is not freed in cer

CVE-2026-23876 CRITICAL POC
9.8 Jan 20

Heap buffer overflow in ImageMagick's XBM image decoder (ReadXBMImage) lets remote attackers write attacker-controlled d

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy