Cyber Posture

CVE-2026-24001

High

Published: 22 January 2026

Published
22 January 2026
Modified
04 March 2026
KEV Added
Patch
CVSS Score 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score 0.0002 5.6th percentile
Risk Priority 15 60% EPSS · 20% KEV · 20% CVSS

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

What attackers do: exploitation maps to Application or System Exploitation (T1499.004).
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.

addresses: CWE-400

Limiting concurrent sessions directly prevents uncontrolled resource consumption by capping the number of active sessions per user or account.

addresses: CWE-400

Analysis identifies uncontrolled resource consumption indicative of denial-of-service or abuse attempts.

addresses: CWE-400

Contingency plan testing includes resource exhaustion scenarios to verify recovery, making it harder for attackers to sustain exploits that cause uncontrolled consumption.

addresses: CWE-400

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.

addresses: CWE-400

Alternate site allows resumption of operations if resource exhaustion at the primary site is exploited to cause unavailability.

addresses: CWE-400

Alternate telecommunications services enable resumption of essential functions when primary services become unavailable due to uncontrolled resource consumption.

addresses: CWE-400

The team can analyze and respond to resource exhaustion incidents, reducing the impact of attacks that exploit uncontrolled consumption weaknesses.

addresses: CWE-400

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

T1499.004 Application or System Exploitation Impact
Adversaries may exploit software vulnerabilities that can cause an application or system to crash and deny availability to users.
Why these techniques?

CVE enables remote application DoS via crafted input triggering infinite loop/ReDOS and memory exhaustion in jsdiff parsePatch/applyPatch.

Confidence: HIGH · MITRE ATT&CK Enterprise v18.1

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)

Affected Products

kpdecker
jsdiff
≤ 3.5.1 · 4.0.0 — 4.0.4 · 5.0.0 — 5.2.2

CVEs Like This One

CVE-2026-39320Shared CWE-1333, CWE-400
CVE-2025-69873Shared CWE-1333, CWE-400
CVE-2026-4926Shared CWE-1333, CWE-400
CVE-2025-9464Shared CWE-400
CVE-2024-53458Shared CWE-400
CVE-2024-57085Shared CWE-400
CVE-2024-56921Shared CWE-400
CVE-2026-33538Shared CWE-400
CVE-2025-9280Shared CWE-400
CVE-2026-23956Shared CWE-1333

References