Skip to main content

image-size CVE-2025-71330

| EUVDEUVD-2025-210105 HIGH
Loop with Unreachable Exit Condition (Infinite Loop) (CWE-835)
2026-06-10 VulnCheck GHSA-w3rx-r6r6-pgpr
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Identify endpoint accepting image uploads
  2. Delivery
    Craft ICNS buffer with zero-length entry
  3. Exploit
    Submit buffer over HTTP to vulnerable service
  4. Execution
    image-size ICNS parser enters infinite loop
  5. Persist
    Node.js event loop blocked indefinitely
  6. Impact
    Worker process becomes unresponsive to all clients

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Loop termination conditions
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The target application must invoke the image-size library (version <= 2.0.2) on attacker-controlled bytes and must not pre-filter the ICNS container format - typical exposures include avatar uploaders, image-metadata endpoints, OG-image scrapers, and any HTTP handler that passes request bodies through image-size for dimension detection. No authentication, user interaction, or non-default configuration is required (CVSS 4.0 PR:N/UI:N/AT:N), but the attacker must be able to deliver a buffer to a code path that calls the ICNS parser; pure client-side or build-time uses of image-size on trusted assets are not exploitable. The DoS is per-process and persistent until the Node.js worker is restarted, so deployments behind multi-worker process managers (PM2, cluster mode, Kubernetes) limit blast radius to whichever worker handled the malicious request.

Impact

CVSS 4.0 vector AV:N/AC:L/AT:N/PR:N/UI:N rates this 8.7 (High) on the basis of high availability impact (VA:H) with no confidentiality or integrity impact and no privileges, user interaction, or attack requirements - a clean, easily reachable network DoS. Public exploit code is confirmed (VulnCheck advisory plus a researcher write-up at joshua.hu), and an upstream patch (PR #439) is available, raising the practical risk for any service that accepts user-supplied images and runs them through image-size. Real-world risk is elevated for SaaS image processors, avatar uploaders, and any Node.js server-side rendering pipeline that calls image-size on untrusted input; conversely, build-time or CLI-only uses of image-size are largely unaffected. EPSS and CISA KEV status are not provided in the input, so widespread mass-exploitation prevalence cannot be confirmed - but because Node.js event-loop blocking takes down the entire process with a single small request, defenders should treat exploitation as cheap and reliable once the POC is republished.

Exploit ScenarioDerived

An attacker uploads or submits a small ICNS image - for instance, as a user avatar, OG-image preview, or webhook payload - to a Node.js service that calls image-size on incoming files. The crafted file contains the valid 'icns' magic header followed by an entry whose declared length is zero, causing image-size's ICNS parser to enter an infinite loop on the first parse. The Node.js event loop blocks indefinitely, hanging the entire process and denying service to every other client of that worker; a public POC and write-up at joshua.hu document the exact byte layout.

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

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

Alert me

AnalysisAIv3 – Jun 10, 2026

Denial of service in the image-size Node.js library (versions up to and including 2.0.2) allows remote unauthenticated attackers to permanently stall the Node.js event loop by submitting a malformed ICNS image. The flaw stems from an infinite loop in the ICNS parser when an entry length field is zero, and publicly available exploit code exists per VulnCheck and an independent write-up; no public exploit identified at time of analysis indicates active exploitation, but the POC makes weaponization trivial.

Earlier versions of this analysis (2)
v2 Jun 10, 2026 - 14:29 cvss changed CVSS 8.7

Denial of service in the image-size npm library (versions through 2.0.2) allows remote unauthenticated attackers to permanently hang the Node.js event loop by submitting a malformed ICNS image. Publicly available exploit code exists and a vendor patch has been released; the CVSS 4.0 score of 8.7 reflects high availability impact with no confidentiality or integrity impact. Any Node.js service that processes untrusted images through this widely used dependency is at risk of indefinite thread blocking.

v1 Jun 10, 2026 - 14:11 CVSS 7.5

Denial of service in the image-size npm package (versions up to and including 2.0.2) allows remote unauthenticated attackers to permanently freeze the Node.js event loop by submitting a crafted ICNS image with a zero-valued entry length field. Any Node.js application that parses untrusted image input with this library is exposed, and publicly available exploit code exists alongside an upstream patch.

RemediationAI

Upgrade to the patched release of image-size that incorporates pull request #439 from https://github.com/image-size/image-size/pull/439; an upstream fix is available (PR/commit), but a specific released patched version number is not independently confirmed in the supplied data, so verify the current npm release notes before pinning. As an interim workaround when an immediate upgrade is not possible, reject ICNS inputs at the application boundary (for example, by checking the magic bytes 'icns' and refusing that container type) or enforce a strict allow-list of formats such as PNG/JPEG/WebP - this eliminates the parser path entirely at the cost of dropping legitimate macOS icon uploads. Additionally, run image parsing in a worker thread or child process with a hard wall-clock timeout so a single hung parse cannot take down the main event loop, accepting the modest latency and memory overhead of process isolation. Consult the VulnCheck advisory at https://www.vulncheck.com/advisories/image-size-denial-of-service-via-malformed-icns-image-parsing for additional vendor guidance.

Affected VersionsENISA

image-size 2.0.0 ≤2.0.2
image-size 1.1.0 ≤1.2.1

Affected Packages

npm image-size fix: 2.0.3

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in npm

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

image-size is a widely used npm package that detects image dimensions and format by parsing image headers, including the Apple Icon Image (ICNS) container format. ICNS files consist of a magic header followed by a series of typed entries, each declaring its own length; the parser walks these entries by advancing an offset using the declared length. CWE-835 (Loop with Unreachable Exit Condition) applies because the ICNS parser uses the entry-length field both as the loop's progress counter and as untrusted input - if an attacker supplies a length of zero, the offset never advances and the while-loop condition (offset < buffer end) remains true forever, blocking the single-threaded Node.js event loop. The affected CPE cpe:2.3:a:image-size:image-size confirms the upstream JavaScript package as the vulnerable component, not a downstream fork.

Know when Node.js 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
SUSE 5.5 MEDIUM
AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
Red Hat 6.5 MEDIUM

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

Lifecycle Timeline

3
Analysis Updated
Jun 10, 2026 - 14:30 vuln.today
v3 - CVSS changed
Analysis Updated
Jun 10, 2026 - 14:29 vuln.today
v2 - CVSS changed
CVSS changed
Jun 10, 2026 - 14:22 NVD
7.5 (HIGH) 8.7 (HIGH)

DescriptionCVE.org

image-size through 2.0.2 contains a denial of service vulnerability that allows remote attackers to permanently block the Node.js event loop by supplying a specially crafted ICNS image buffer. Attackers can craft an ICNS buffer containing valid magic bytes and a zero-valued entry length field to trigger an infinite loop in the ICNS parser, as the offset is never incremented when the entry length field is 0, causing the while loop condition to remain true indefinitely.

Executive ViewAI

Why It Matters

The image-size Node.js library versions 2.0.2 and earlier contain a remote denial-of-service vulnerability that can permanently disable production services. Publicly available exploit code exists, making attacks trivial to execute. Any organization using this library faces immediate risk of service disruptions without urgent patching.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.1%
Top 73% exploitable
Threat Intel
1
1 source
Exploit
POC
Public exploit code exists
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub VulDB

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 Yes
EPSS 0.1%
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
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

64
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: +20
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-2025-68613 HIGH POC
8.8 Dec 19

Remote code execution in n8n's workflow expression evaluation system allows an authenticated user with workflow creation

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2024-35286 CRITICAL POC
9.8 Oct 21

A vulnerability in NuPoint Messenger (NPM) of Mitel MiCollab through 9.8.0.33 allows an unauthenticated attacker to cond

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Micro 5.3 Not-Affected
SUSE Linux Enterprise Micro 5.3 Not-Affected
SUSE Linux Enterprise Micro 5.4 Not-Affected
SUSE Linux Enterprise Micro 5.4 Not-Affected
SUSE Linux Enterprise Micro 5.5 Not-Affected

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