---
id: CVE-2025-71330
aliases:
  - GHSA-w3rx-r6r6-pgpr
title: 'image-size: ICNS parser allows denial of service through an infinite loop'
summary: 'image-size: ICNS parser allows denial of service through an infinite loop'
severity: high
cvss: 7.5
cwe:
  - CWE-835
vendor: image-size
product: image-size
ecosystem: npm
affected:
  - 'image-size >= 0.6.3, <= 2.0.2'
patched:
  - image-size 2.0.3
published: '2026-06-10'
updated: '2026-09-24'
sourceUpdated: '2026-09-24T18:23:12Z'
source: GHSA
sourceUrl: 'https://github.com/advisories/GHSA-w3rx-r6r6-pgpr'
references:
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2025-71330'
  - url: 'https://joshua.hu/image-size-infinite-loop-dos-vulnerabilities'
  - url: >-
      https://web.archive.org/web/20260224152152/https://github.com/image-size/image-size/pull/439
  - url: >-
      https://www.vulncheck.com/advisories/image-size-denial-of-service-via-malformed-icns-image-parsing
  - url: >-
      https://codeberg.org/image-size/image-size/commit/e6e83a5578961de81f6d5834d90fb7430d8f29a5
  - url: 'https://github.com/advisories/GHSA-w3rx-r6r6-pgpr'
tags:
  - ghsa
  - npm
epss: 0.0043
epssPercentile: 0.34629
ingestedAt: '2026-09-24T18:49:36.715Z'
---

## Overview

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.

## Affected packages

- `image-size >= 0.6.3, <= 2.0.2`

## Remediation

Upgrade to a patched release:

- `image-size 2.0.3`
