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/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Primary rating from Vendor (snyk) · only source for this CVE.
CVSS VectorVendor: snyk
Lifecycle Timeline
6DescriptionCVE.org
This affects versions of the package exifreader before 4.39.0. A crafted image containing an ICC mluc tag can set an attacker-controlled record count together with a zero record size. During parsing, ExifReader repeatedly processes the same record and appends entries to an array without sufficient bounds validation, causing excessive memory growth. In applications that parse attacker-supplied images, this may lead to denial of service through memory exhaustion.
AnalysisAI
Denial-of-service in ExifReader (npm package mattiasw/ExifReader) before 4.39.0 allows remote attackers to exhaust memory by submitting a crafted image whose ICC profile contains a malformed mluc tag. A specially crafted record count combined with a zero record size causes the parser to loop on the same record while continuously appending entries to an array, driving memory growth until the host process crashes. CVSS 4.0 base score is 7.7 with proof-of-concept exploit maturity (E:P), and publicly available exploit code exists via the referenced gist; no active in-the-wild exploitation is indicated.
Technical ContextAI
ExifReader is a widely used JavaScript/Node.js library for extracting EXIF, IPTC, XMP, ICC and other metadata from images, commonly deployed inside web upload pipelines, image processors, and serverless functions. The bug lives in the ICC profile parser, specifically the handling of the multi-localized Unicode string (mluc) tag defined by the ICC.1:2010 specification, which encodes a 32-bit record count and a 32-bit record size followed by per-locale entries. CWE-1284 (Improper Validation of Specified Quantity in Input) applies: the parser trusts the attacker-supplied record count and does not validate that the record size is non-zero, so the read pointer never advances and the same record is appended repeatedly. The upstream fix is commit c9d88b67e127b2dcc7b46e328df468257fb2dc30 (CHANGELOG: 'Improved robustness when parsing ICC profiles with malformed mluc tags') shipped in 4.39.0. Affected CPE is cpe:2.3:a:n/a:exifreader:*:*:*:*:*:*:*:*.
RemediationAI
Vendor-released patch: upgrade ExifReader to 4.39.0 or later (npm install exifreader@^4.39.0, then rebuild and redeploy any service that bundles it); the upstream fix is commit c9d88b67e127b2dcc7b46e328df468257fb2dc30 and is summarized in the project changelog as improved robustness against malformed ICC mluc tags. Audit transitive dependencies with npm ls exifreader or an SCA tool to catch indirect inclusions, and consult the Snyk advisory at https://security.snyk.io/vuln/SNYK-JS-EXIFREADER-16689335 for additional mitigation guidance. If immediate upgrade is not feasible, compensating controls include disabling ICC profile parsing in ExifReader options (omit USE_ICC where the API allows it, accepting that ICC metadata will no longer be extracted), enforcing a strict maximum image size and per-request memory or CPU cap on the worker that performs parsing (which limits blast radius but does not prevent the crash), running metadata extraction inside an isolated short-lived worker or container with --max-old-space-size so that OOM kills do not bring down the main application, and stripping ICC profiles upstream with a hardened tool such as ImageMagick or libvips before the bytes ever reach ExifReader.
LibreNMS before 24.10.0 allows a remote attacker to execute arbitrary code via OS command injection involving AboutContr
Reachable assertion in Open5GS up to version 2.7.6 allows remote unauthenticated attackers to crash the Diameter CER han
A Command Injection issue in the payload build page in BYOB (Build Your Own Botnet) 2.0 allows attackers to execute arbi
Denial of service in Open5GS 2.7.6 and earlier allows network-adjacent attackers with low-privilege Diameter Gx peer acc
Denial of service in Open5GS HSS (Home Subscriber Server) versions 2.7.0 through 2.7.6 is triggered remotely by manipula
Remote command injection in Control Web Panel allows unauthenticated attackers to execute arbitrary OS commands as root
LINQPad before 5.52.01 Pro edition is vulnerable to Unsafe Deserialization in LINQPad.AutoRefManager::PopulateFromCache(
Remote code execution in dash-uploader (Python package for Plotly Dash) versions 0.1.0 through 0.7.0a2 allows unauthenti
Command injection in LiteLLM 1.18.10 lets attackers who can configure MCP (Model Context Protocol) servers supply arbitr
SQL injection in AzuraCast's backup restore flow (versions up to and including 0.23.7) lets an attacker achieve privileg
Arbitrary file read in Yu AI Code Mother v4.3 lets anonymous, remote attackers retrieve files outside the intended previ
Remote code execution in APScheduler (all versions through 3.10.x and 4.0.0a5) is achievable when applications deseriali
Same technique Denial Of Service
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-30838
GHSA-h64w-w9pr-82m4