CVE-2025-69873
Published: 11 February 2026
Summary
CVE-2025-69873 is a low-severity Inefficient Regular Expression Complexity (CWE-1333) vulnerability. Its CVSS base score is 2.9 (Low).
Operationally, exploitation aligns with the MITRE ATT&CK technique Application or System Exploitation (T1499.004); ranked at the 3.1th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog.
The strongest mitigations our analysis identified are NIST 800-53 SI-10 (Information Input Validation) and SI-2 (Flaw Remediation).
Deeper analysis
CVE-2025-69873 is a Regular Expression Denial of Service (ReDoS) vulnerability in ajv (Another JSON Schema Validator) versions before 8.18.0. The issue arises when the $data option is enabled, as the pattern keyword accepts runtime data via JSON Pointer syntax ($data reference), which is passed directly to the JavaScript RegExp() constructor without validation. This allows injection of malicious regex patterns, such as "^(a|a)*$", leading to catastrophic backtracking when combined with crafted input. A 31-character payload can cause approximately 44 seconds of CPU blocking, with each additional character roughly doubling execution time. The vulnerability is also addressed in ajv version 6.14.0.
An attacker can exploit this vulnerability by submitting a specially crafted input to any API or application using ajv with $data: true for dynamic schema validation, enabling a complete denial of service via a single HTTP request. The CVSS v3.1 base score is 2.9 (Low), reflecting a local attack vector (AV:L), high attack complexity (AC:H), no privileges required (PR:N), no user interaction (UI:N), unchanged scope (S:U), and low impact on availability (A:L) with no impact on confidentiality or integrity. Associated CWEs are CWE-1333 (Inefficient Regular Expression Complexity) and CWE-400 (Uncontrolled Resource Consumption).
Advisories and patches recommend upgrading to ajv 8.18.0 or later, or version 6.14.0 for the legacy branch. The GitHub Security Advisory (GHSA-2g4f-4pwh-qvx6) details the issue, while pull requests #2588 and #2590 in the ajv-validator/ajv repository implement the fixes, and the v6.14.0 release tag confirms the patch availability. A detailed disclosure is available at https://github.com/EthanKim88/ethan-cve-disclosures/blob/main/CVE-2025-69873-ajv-ReDoS.md.
EU & UK References
- 🇪🇺 ENISA EUVD: EUVD-2025-207389
Vulnerability details
ajv (Another JSON Schema Validator) before 8.18.0 is vulnerable to Regular Expression Denial of Service (ReDoS) when the $data option is enabled. The pattern keyword accepts runtime data via JSON Pointer syntax ($data reference), which is passed directly to the…
more
JavaScript RegExp() constructor without validation. An attacker can inject a malicious regex pattern (e.g., "^(a|a)*$") combined with crafted input to cause catastrophic backtracking. A 31-character payload causes approximately 44 seconds of CPU blocking, with each additional character doubling execution time. This enables complete denial of service with a single HTTP request against any API using ajv with $data: true for dynamic schema validation. This issue is also fixed in version 6.14.0.
- CWE(s)
Related Threats
MITRE ATT&CK Enterprise TechniquesAI
Why these techniques?
ReDoS vulnerability directly enables application-layer DoS via crafted regex input causing CPU exhaustion.
CVEs Like This One
Affected Assets
Mitigating Controls
Mitigating Controls (NIST 800-53 r5) AI
Directly requires validation of untrusted input (the $data-referenced pattern) before it is passed to RegExp() to block malicious regexes that trigger catastrophic backtracking.
Requires mechanisms to protect against denial-of-service conditions caused by resource exhaustion from a single crafted request exploiting the ReDoS flaw.
Mandates timely application of the available patches (ajv 8.18.0 or 6.14.0) that eliminate the unsafe direct use of runtime pattern data in RegExp().