CVE-2026-24001
Published: 22 January 2026
Summary
CVE-2026-24001 is a high-severity Uncontrolled Resource Consumption (CWE-400) vulnerability in Kpdecker Jsdiff. Its CVSS base score is 7.5 (High).
Operationally, exploitation aligns with the MITRE ATT&CK technique Application or System Exploitation (T1499.004); ranked at the 5.6th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog.
Threat & Defense at a Glance
Threat & Defense Details
Likely Mitigating ControlsAI
Per-CVE control mapping for this CVE has not run yet; the list below is derived from the weakness types (CWEs) cited in the NVD entry.
Limiting concurrent sessions directly prevents uncontrolled resource consumption by capping the number of active sessions per user or account.
Analysis identifies uncontrolled resource consumption indicative of denial-of-service or abuse attempts.
Contingency plan testing includes resource exhaustion scenarios to verify recovery, making it harder for attackers to sustain exploits that cause uncontrolled consumption.
Updated contingency plans include current procedures to detect, contain, and recover from resource exhaustion, limiting an attacker's ability to sustain impact from uncontrolled consumption.
Alternate site allows resumption of operations if resource exhaustion at the primary site is exploited to cause unavailability.
Alternate telecommunications services enable resumption of essential functions when primary services become unavailable due to uncontrolled resource consumption.
The team can analyze and respond to resource exhaustion incidents, reducing the impact of attacks that exploit uncontrolled consumption weaknesses.
Timely maintenance support and spare parts enable rapid recovery from failures induced by uncontrolled resource consumption, shortening the impact window of denial-of-service attacks.
MITRE ATT&CK Enterprise TechniquesAI
Why these techniques?
CVE enables remote application DoS via crafted input triggering infinite loop/ReDOS and memory exhaustion in jsdiff parsePatch/applyPatch.
NVD Description
jsdiff is a JavaScript text differencing implementation. Prior to versions 8.0.3, 5.2.2, 4.0.4, and 3.5.1, attempting to parse a patch whose filename headers contain the line break characters `\r`, `\u2028`, or `\u2029` can cause the `parsePatch` method to enter an…
more
infinite loop. It then consumes memory without limit until the process crashes due to running out of memory. Applications are therefore likely to be vulnerable to a denial-of-service attack if they call `parsePatch` with a user-provided patch as input. A large payload is not needed to trigger the vulnerability, so size limits on user input do not provide any protection. Furthermore, some applications may be vulnerable even when calling `parsePatch` on a patch generated by the application itself if the user is nonetheless able to control the filename headers (e.g. by directly providing the filenames of the files to be diffed). The `applyPatch` method is similarly affected if (and only if) called with a string representation of a patch as an argument, since under the hood it parses that string using `parsePatch`. Other methods of the library are unaffected. Finally, a second and lesser interdependent bug - a ReDOS - also exhibits when those same line break characters are present in a patch's *patch* header (also known as its "leading garbage"). A maliciously-crafted patch header of length *n* can take `parsePatch` O(*n*³) time to parse. Versions 8.0.3, 5.2.2, 4.0.4, and 3.5.1 contain a fix. As a workaround, do not attempt to parse patches that contain any of these characters: `\r`, `\u2028`, or `\u2029`.
Deeper analysisAI
CVE-2026-24001 is a denial-of-service vulnerability in jsdiff, a JavaScript library for text differencing. In versions prior to 8.0.3, 5.2.2, 4.0.4, and 3.5.1, the parsePatch method enters an infinite loop when processing patches whose filename headers contain line break characters such as \r, \u2028, or \u2029, leading to unbounded memory consumption and process crash. The applyPatch method is similarly affected when called with a string representation of a patch, as it internally invokes parsePatch. Additionally, a related ReDOS issue causes O(n³) parsing time for malicious patch headers containing those characters. Other library methods remain unaffected. The vulnerability is rated 7.5 on CVSS 3.1 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) and maps to CWE-400 (Uncontrolled Resource Consumption) and CWE-1333 (Inefficient Regular Expression Complexity).
Attackers can exploit this remotely with no privileges or user interaction by supplying a maliciously crafted patch to applications that invoke parsePatch or applyPatch on untrusted input. No large payloads are required, rendering input size limits ineffective. Even applications generating their own patches may be vulnerable if users can control filename headers, such as by specifying files for diffing. Successful exploitation results in denial of service via memory exhaustion and process termination.
The jsdiff security advisory (GHSA-73rr-hh4g-fpgx) and related GitHub fixes recommend upgrading to versions 8.0.3, 5.2.2, 4.0.4, or 3.5.1, which address both the infinite loop and ReDOS issues (see commit 15a1585230748c8ae6f8274c202e0c87309142f5 and pull request #649). As a workaround, applications should reject patches containing \r, \u2028, or \u2029 characters before parsing.
Details
- CWE(s)