Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconCraft ZIP with 0xFFFFFFFF compressed_size sentinel, omit ZIP64 extra field
-
DeliverySubmit archive to fflate-consuming service endpoint
-
ExploitApplication calls unzipSync() on attacker input
-
Installz64e() reads out-of-bounds buffer position
-
C2Returns undefined, coerces to 0 in numeric context
-
ExecuteLoop exit condition permanently unreachable
-
ImpactTarget thread hangs, service availability lost
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 | Exploitation requires that the target application (1) accepts ZIP archive input from an untrusted or remote source, and (2) passes that input to fflate's unzipSync() function. The vulnerability is specific to the synchronous unzipSync() code path via the z64e() helper - the async unzip() API follows a different execution path, though whether it shares the same vulnerable helper is not independently confirmed from available data and should not be assumed safe without code review. No authentication, no special server configuration, and no specific operating system are required; the flaw is in pure JavaScript/TypeScript logic and affects any runtime environment (Node.js, browser, Deno, Bun) running fflate ≤0.8.2. The CVSS 4.0 PR:N and UI:N confirm no privilege or user interaction is needed from the attacker's perspective. Exploitation is limited to applications that process attacker-controlled ZIP archives; services that only decompress internally generated or pre-validated ZIPs are not exploitable. |
| Impact | The CVSS 4.0 score of 6.6 (Medium) with base vector AV:N/AC:L/AT:N/PR:N/UI:N reflects a network-reachable, zero-authentication attack path with high availability impact and no confidentiality or integrity exposure - an accurate characterization of a pure DoS. The supplemental metric AU:Y (automatable) is especially significant: a threat actor can craft the malformed archive deterministically and submit it at scale with no human-in-the-loop requirement, enabling mass targeting of exposed endpoints. The E:U (unexploited) signal and absence from CISA KEV indicate no confirmed active exploitation at time of scoring, which moderates urgency. EPSS data was not provided in the available intelligence, limiting probabilistic exploitation forecasting. The combination of trivial trigger (a single malformed file), zero-authentication requirement, and automation potential elevates the practical risk above what the Medium CVSS score alone suggests - particularly for publicly exposed file-processing services. There is no conflict between the CVSS vector and the description; both confirm the network-local exploitation model. The score is appropriately bounded by the DoS-only impact scope. |
| Exploit ScenarioDerived | An attacker crafts a ZIP archive whose central directory sets compressed_size to 0xFFFFFFFF but intentionally omits the ZIP64 extra field, then submits the file to any web service, API endpoint, or build tool that calls fflate's unzipSync() on untrusted input - such as a file conversion API, archive preview feature, or CI artifact processor. The target process enters an infinite loop consuming 100% of a CPU core and never returns, causing the request to hang and ultimately starving the application of worker threads or connection slots, resulting in complete service unavailability. Because the trigger is a valid-looking ZIP structure, standard file-type validation and extension filtering provide no protection. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 22, 2026
Denial of service in fflate through 0.8.2 exposes any application calling unzipSync() to an indefinite process hang when processing attacker-supplied ZIP archives. The synchronous decompression helper z64e() enters an infinite loop when a ZIP central directory entry sets compressed_size=0xFFFFFFFF (the ZIP64 sentinel) but omits the required extra field tag 0x0001, causing JavaScript out-of-bounds array reads to silently return undefined, which coerces to 0 and prevents the loop from ever terminating. No public exploit has been identified at time of analysis, but the attack is network-reachable with no authentication required (CVSS 4.0 PR:N, UI:N) and is flagged automatable (AU:Y), making it a credible denial-of-service threat against any fflate-consuming service that accepts untrusted ZIP input.
RemediationAI
No vendor-released patched version is confirmed at time of analysis - the source code reference points to a specific unpatched commit hash (f7873560), indicating that a fix had not been published to npm at the time of reporting. Organizations should monitor the fflate npm package for releases beyond 0.8.2 and upgrade as soon as a patched version is available. As an immediate compensating control, validate ZIP archives before passing them to unzipSync() by rejecting any central directory entry that sets compressed_size to 0xFFFFFFFF without a properly structured ZIP64 extra field block (tag 0x0001); this prevents z64e() from being invoked on malformed input. Wrapping unzipSync() in a try/catch block does NOT mitigate this vulnerability because no exception is thrown - the function simply never returns. For production services accepting ZIP uploads, run ZIP decompression in an isolated worker thread or child process with a watchdog timeout (for example, 30 seconds) so a hung parse can be killed without blocking the main event loop. Restricting ZIP upload endpoints to authenticated, trusted users reduces the attack surface at the network boundary with the trade-off of limiting public-facing functionality.
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
fflate (CPE: cpe:2.3:a:101arrowz:fflate:*:*:*:*:*:*:*:*) is a TypeScript/JavaScript compression library distributed via npm. The vulnerable code resides in the z64e() internal helper function at src/index.ts line 2714, invoked by the synchronous unzipSync() API during ZIP archive parsing. The ZIP64 format uses 0xFFFFFFFF as a sentinel in the central directory's compressed_size field to signal that the actual 64-bit value is stored in an appended extra field identified by tag 0x0001. When a malformed archive declares this sentinel but omits the extra field, z64e() attempts to read the 64-bit size from a position that does not exist in the buffer. In JavaScript, out-of-bounds typed array accesses do not throw - they silently return undefined. When undefined participates in numeric comparison or arithmetic, it coerces to 0, causing the loop termination condition (which depends on the parsed size value) to become permanently true. This is a textbook CWE-835 (Loop with Unreachable Exit Condition) whose root cause is JavaScript's permissive undefined-to-number coercion behavior combined with the absence of bounds checking before the loop.
Know when Fflate 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/E:U/S:N/AU:Y/R:U/V:D/RE:M/U:Amber
Network-reachable via untrusted ZIP upload with no authentication or interaction needed; pure availability impact (infinite loop); no scope change, confidentiality, or integrity impact.
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Primary rating from Vendor (seal).
CVSS VectorVendor: seal
DescriptionCVE.org
fflate through 0.8.2 is vulnerable to denial of service via an infinite loop in unzipSync(). A crafted ZIP archive with a central directory entry declaring compressed_size=0xFFFFFFFF (ZIP64 sentinel) but missing the required ZIP64 extra field tag 0x0001 causes z64e() to loop indefinitely due to out-of-bounds reads returning undefined, which coerces to 0, keeping the loop condition permanently true.
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.
Same technique Denial Of Service
View allVendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| SUSE Linux Enterprise Module for SAP Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| SUSE Linux Enterprise Module for SAP Applications 15 SP4 | Affected |
| SUSE Linux Enterprise Module for SAP Applications 15 SP5 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Affected |
| SUSE Linux Enterprise Module for SAP Applications 15 SP3 | Affected |
| SUSE Linux Enterprise Module for SAP Applications 15 SP6 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP3 | Affected |
EUVD-2026-47616
GHSA-px8p-9vwx-vf98
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB