MediumGHSA-2g4f-4pwh-qvx6CVE-2025-69873

ajv has ReDoS when using `$data` option

Published 11 Feb 2026 · Updated 10 Sept 2026

Affected packages

ajvnpm
Affected
>=7.0.0-alpha.0 <8.18.0
Fixed in
8.18.0
Update to the fixed version for your release line, for example:npm install ajv@8.18.0
ajvnpm
Affected
<6.14.0
Fixed in
6.14.0
Update to the fixed version for your release line, for example:npm install ajv@6.14.0

Details

ajv (Another JSON Schema Validator) through version 8.17.1 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 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.

Is GHSA-2g4f-4pwh-qvx6 in any of your client repos?

Checking one package by hand is fine. Checking it across forty client projects is not. NPMscan reads the lockfiles in every GitHub repo you pick, finds each project with an affected ajv, and gives you the command that fixes it.

References

Advisory data from OSV.dev (opens OSV.dev in a new tab), refreshed daily.