Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify endpoint accepting image uploads
-
DeliveryCraft ICNS buffer with zero-length entry
-
ExploitSubmit buffer over HTTP to vulnerable service
-
Executionimage-size ICNS parser enters infinite loop
-
PersistNode.js event loop blocked indefinitely
-
ImpactWorker 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv3 – 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)
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.
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
Affected Packages
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
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
AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
3DescriptionCVE.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.
Blast Radius
ecosystem impact- 1,388 npm packages depend on image-size (420 direct, 968 indirect)
Ecosystem-wide dependent count for version 0.6.3.
Executive ViewAI
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.
Apply vendor patch.
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
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Remote code execution in n8n's workflow expression evaluation system allows an authenticated user with workflow creation
A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could
FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t
Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete
Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc
An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner
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
Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi
Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin
A vulnerability in NuPoint Messenger (NPM) of Mitel MiCollab through 9.8.0.33 allows an unauthenticated attacker to cond
Same technique Denial Of Service
View allVendor 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 |
| SUSE Linux Enterprise Micro 5.5 | Not-Affected |
| SUSE Linux Enterprise Server 16.0 | Not-Affected |
| SUSE Linux Enterprise Server 16.0 | Not-Affected |
| SUSE Linux Enterprise Server 16.1 | Not-Affected |
| SUSE Linux Enterprise Server 16.1 | Not-Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Not-Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Not-Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Not-Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Not-Affected |
| SUSE Linux Micro 6.0 | Not-Affected |
| SUSE Linux Micro 6.0 | Not-Affected |
| SUSE Linux Micro 6.1 | Not-Affected |
| SUSE Linux Micro 6.1 | Not-Affected |
| SUSE Linux Micro 6.2 | Not-Affected |
| SUSE Linux Micro 6.2 | Not-Affected |
| openSUSE Leap 16.0 | Not-Affected |
| openSUSE Leap 16.0 | Not-Affected |
| openSUSE Leap Micro 5.5 | Not-Affected |
EUVD-2025-210105
GHSA-w3rx-r6r6-pgpr
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB