Skip to main content

php-image-resize EUVDEUVD-2026-97495

| CVE-2026-109398 HIGH
Improper Handling of Highly Compressed Data (Data Amplification) (CWE-409)
2026-10-12 VulnCheck GHSA-f678-5vxr-2r99
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Access image-upload endpoint
  2. Exploit
    Upload tiny high-compression image bomb
  3. Execution
    GD decodes oversized bitmap, exhausts PHP memory
  4. Impact
    PHP-FPM worker killed, service denied

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V2 - Validation and Business Logic Compression ratio limits
Exploitation Conditions

Exploitation requires that the target application instantiate ImageResize (lib/ImageResize.php) on attacker-controllable image input - i.e. an upload or URL-fetch feature that passes untrusted images to GD imagecreatefrom* via the constructor - on a vulnerable version before 3.0.1 where no pixel limit exists. The limiting factors are: the attacker must have a path to submit images into the resize pipeline (any upload endpoint suffices, no authentication is indicated by PR:N); impact is availability-only, crashing the individual PHP worker rather than achieving code execution or data access; and deployments on 3.0.1+ with the default $max_source_pixels=15,000,000 guard, or any version where callers reject oversized images upstream, are not exploitable.

Impact

This is a genuine availability risk but not an emergency. All signals point to a single, consistent conclusion: the CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) describes a network-reachable, low-complexity, unauthenticated attack, but impact is confined to availability only (VC:N/VI:N/VA:H) - there is no confidentiality or integrity loss, which is why the 8.7 'High' score does not rise to Critical. The attack is clearly automatable (a single tiny uploaded file reliably crashes a worker), which supports an elevated score. Weighing against urgency: there is no CISA KEV listing and no POC flagged in the input, so this is 'no public exploit identified at time of analysis' rather than active exploitation. EPSS and SSVC values were not supplied, so exploitation probability cannot be quantified from the data given. The real-world risk is also gated by exposure - only deployments that pass untrusted/uploaded images through the vulnerable ImageResize constructor are affected, and the crash terminates one PHP-FPM worker (transient DoS) rather than the whole host. Note a classification nuance: the input labels this CWE-409 (data amplification), while the vendor's own patch notes call it CWE-400 (uncontrolled resource consumption); both are defensible for a decompression/image bomb and this does not change the risk picture. Net: prioritize patching for any internet-facing app that resizes user-supplied images, but treat it as a stability/DoS fix, not a breach risk.

Exploit ScenarioDerived

An attacker locates a web application that uses php-image-resize (< 3.0.1) to process user-uploaded images and submits a small, highly compressed image (e.g. a ~56 KB PNG whose canvas is 4000×4000 pixels). When the ImageResize constructor calls imagecreatefrompng() the file decompresses to ~61 MB of raw bitmap, exceeding PHP's memory_limit and fatally terminating the PHP-FPM worker; repeating this exhausts the worker pool and denies service. No public exploit is identified at time of analysis, but the technique is trivial to reproduce.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.5% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 12, 2026

Remote unauthenticated attackers can crash PHP worker processes in applications using Gumlet php-image-resize before 3.0.1 by submitting small, heavily compressed image files that expand into very large bitmaps when decoded by GD, exhausting the PHP memory limit and terminating the worker. Any upload or URL-fetch feature that hands untrusted images to the ImageResize constructor is exposed; the impact is availability-only, affecting individual PHP-FPM workers rather than enabling code execution or data disclosure. Severity is rated 8.7 (CVSS 4.0) and an independent assessment concurs on a high availability impact (CVSS 3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H); no public exploit code has been identified at time of analysis and the issue is not known to be actively exploited, but the attack is trivial to construct and the vendor characterizes this as a genuine availability risk rather than an emergency.

RemediationAI

Vendor-released patch: upgrade to php-image-resize 3.0.1 (Composer: require gumlet/php-image-resize:^3.0.1), which documents the fix in its security release notes and addresses the issue in commits 10c1f386e672536d82be0f39b236a80d87767a50 and cd01c9e8aa2382211d760c825799c8102987a8c2, with full details in advisory GHSA-3g9v-hjrx-mg5h. The 3.0.1 constructor now reads image dimensions first and rejects any source whose width x height exceeds the new public property $max_source_pixels, which defaults to 15,000,000 pixels (roughly 3873x3873) and raises ImageResizeException before imagecreatefrom* is called; you may lower this value for tighter limits, and setting it to 0 disables the guard entirely (recommended only for fully trusted input, as it restores the vulnerable behavior). If upgrading immediately is not possible, add an upstream pre-check that runs getimagesize()/imagesx()/imagesy() on untrusted uploads and refuses images above a chosen pixel threshold before instantiation, and be aware that file-size limits are an inadequate control here because the malicious payload can be under 60 KB; alternatively, run image processing in a sandboxed worker pool with enforced memory caps and automatic restart supervision, which limits the blast radius to a single worker but does not prevent the recurring DoS, and lower PHP memory_limit only reduces the decode size needed to crash rather than eliminating the flaw. Note that blocking specific image formats is not effective, since the same pixel-explosion primitive applies across imagecreatefrompng, imagecreatefromjpeg, and the other GD loaders.

Affected VersionsENISA

php-image-resize 0 <3.0.1

Affected Packages

euvd php_image_resize fix: 3.0.1

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

Gumlet php-image-resize is a Composer-distributed PHP wrapper around the GD extension, used to resize and crop images in web applications. The vulnerable code path is the ImageResize constructor in lib/ImageResize.php (roughly lines 122-163 in 3.0.0), which calls imagecreatefrompng, imagecreatefromjpeg, and related GD functions directly on the supplied file path. GD allocates the full uncompressed bitmap in memory before any downscaling occurs, so pixel dimensions - not file size - determine memory consumption: a 4000x4000 PNG can be roughly 56 KB on disk while requiring about 61 MB of raw canvas, which is enough to exceed a typical 128 MB PHP memory_limit and trigger a fatal out-of-memory error. The vulnerability is tracked as CWE-409 (improper handling of highly compressed data, i.e. a decompression/image bomb); notably the upstream fix commit labels it CWE-400 (uncontrolled resource consumption), and the two classifications describe the same root cause of unbounded resource allocation on attacker-controlled input. The pinned CPE cpe:2.3:a:gumlet:php-image-resize:*:*:*:*:*:*:*:* covers all releases prior to the 3.0.1 fix, and no authentication is required per the CVSS vector (PR:N), meaning a path to submit an image into the resize pipeline is the only prerequisite.

Know when PHP 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 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Remote unauthenticated upload of a crafted image reliably crashes the PHP worker, so AV:N/AC:L/PR:N/UI:N with availability-only impact (A:H; C:N/I:N).

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

Gumlet php-image-resize before 3.0.1 contains a denial of service vulnerability because the ImageResize constructor in lib/ImageResize.php passes images to GD imagecreatefrom* functions without pixel limits. Remote attackers can upload small, highly compressed images that decode to large bitmaps, exhausting PHP memory and terminating the worker process.

Executive ViewAI

Why It Matters

Applications that rely on the Gumlet php-image-resize library (versions before 3.0.1) to process user-supplied images can be driven into resource exhaustion by unauthenticated attackers, terminating PHP-FPM workers and degrading or interrupting customer-facing image upload and URL-fetch features. Leadership should care because the exposure is any public upload or remote-image-fetch endpoint, and while there is no code execution or data disclosure, sustained abuse can produce visible service outages and repeated operational firefighting. No public exploit code identified at time of analysis, and the vendor has released a fixed version, making this a manageable but time-sensitive availability risk.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.5%
Top 62% exploitable
Prevalence
Medium
popular open-source PHP image library, common but not in every environment
Threat Intel
1
1 source
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 HIGH
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Medium

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
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.

More in PHP

View all
CVE-2019-11043 CRITICAL POC
9.8 Oct 28

In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it

CVE-2012-1823 CRITICAL POC
9.8 May 11

sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not

CVE-2016-1555 CRITICAL POC
9.8 Apr 21

(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear

CVE-2018-11138 CRITICAL POC
9.8 May 31

The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by

CVE-2024-11680 CRITICAL POC
9.8 Nov 26

ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C

CVE-2025-49113 CRITICAL POC
9.9 Jun 02

Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au

CVE-2017-9841 CRITICAL POC
9.8 Jun 27

Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c

CVE-2025-0108 HIGH POC
8.8 Feb 12

Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers

CVE-2021-25298 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2021-25296 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2013-4983 CRITICAL POC
10.0 Sep 10

The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

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