NodeJS/ajv/0.5.11
Another JSON Schema Validator
https://www.npmjs.com/package/ajv
MIT
2 Security Vulnerabilities
ajv has ReDoS when using `$data` option
- https://nvd.nist.gov/vuln/detail/CVE-2025-69873
- https://github.com/EthanKim88/ethan-cve-disclosures/blob/main/CVE-2025-69873-ajv-ReDoS.md
- https://github.com/ajv-validator/ajv/pull/2586
- https://github.com/ajv-validator/ajv/commit/720a23fa453ffae8340e92c9b0fe886c54cfe0d5
- https://github.com/ajv-validator/ajv/releases/tag/v8.18.0
- https://github.com/advisories/GHSA-2g4f-4pwh-qvx6
- https://github.com/ajv-validator/ajv/pull/2588
- https://github.com/ajv-validator/ajv/releases/tag/v6.14.0
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.
Prototype Pollution in Ajv
- https://nvd.nist.gov/vuln/detail/CVE-2020-15366
- https://github.com/ajv-validator/ajv/commit/65b2f7d76b190ac63a0d4e9154c712d7aa37049f
- https://github.com/ajv-validator/ajv/releases/tag/v6.12.3
- https://hackerone.com/bugs?subject=user&report_id=894259
- https://github.com/ajv-validator/ajv/tags
- https://github.com/advisories/GHSA-v88g-cgmw-v5xw
- https://security.netapp.com/advisory/ntap-20240621-0007
An issue was discovered in ajv.validate() in Ajv (aka Another JSON Schema Validator) 6.12.2. A carefully crafted JSON schema could be provided that allows execution of other code by prototype pollution. (While untrusted schemas are recommended against, the worst case of an untrusted schema should be a denial of service, not execution of code.)
357 Other Versions
| Version | License | Security | Released | |
|---|---|---|---|---|
| 6.0.1 | MIT | 2 | 2018-01-11 - 22:04 | about 8 years |
| 6.0.0 | MIT | 2 | 2018-01-07 - 15:32 | about 8 years |
| 6.0.0-rc.1 | MIT | 2 | 2017-12-03 - 17:59 | about 8 years |
| 6.0.0-rc.0 | MIT | 2 | 2017-11-26 - 10:49 | about 8 years |
| 6.0.0-beta.2 | MIT | 2 | 2017-11-12 - 10:13 | over 8 years |
| 6.0.0-beta.1 | MIT | 2 | 2017-11-06 - 10:18 | over 8 years |
| 6.0.0-beta.0 | MIT | 2 | 2017-11-06 - 07:43 | over 8 years |
| 5.5.2 | MIT | 2 | 2017-12-16 - 20:35 | about 8 years |
| 5.5.1 | MIT | 2 | 2017-12-02 - 12:48 | about 8 years |
| 5.5.0 | MIT | 2 | 2017-11-24 - 20:45 | about 8 years |
| 5.4.0 | MIT | 2 | 2017-11-20 - 21:23 | over 8 years |
| 5.3.0 | MIT | 2 | 2017-10-24 - 19:00 | over 8 years |
| 5.2.5 | MIT | 2 | 2017-10-24 - 10:32 | over 8 years |
| 5.2.4 | MIT | 2 | 2017-10-22 - 15:16 | over 8 years |
| 5.2.3 | MIT | 2 | 2017-09-25 - 20:57 | over 8 years |
| 5.2.2 | MIT | 2 | 2017-07-10 - 22:19 | over 8 years |
| 5.2.1 | MIT | 2 | 2017-07-06 - 23:29 | over 8 years |
| 5.2.0 | MIT | 2 | 2017-06-16 - 23:13 | over 8 years |
| 5.1.6 | MIT | 2 | 2017-06-15 - 22:37 | over 8 years |
| 5.1.5 | MIT | 2 | 2017-05-28 - 19:59 | over 8 years |
| 5.1.4 | MIT | 2 | 2017-05-25 - 21:17 | over 8 years |
| 5.1.3 | MIT | 2 | 2017-05-20 - 21:35 | almost 9 years |
| 5.1.2 | MIT | 2 | 2017-05-19 - 19:53 | almost 9 years |
| 5.1.1 | MIT | 2 | 2017-05-14 - 22:50 | almost 9 years |
| 5.1.0 | MIT | 2 | 2017-05-14 - 11:17 | almost 9 years |
| 5.0.4-beta.3 | MIT | 2 | 2017-04-08 - 20:11 | almost 9 years |
| 5.0.4-beta.2 | MIT | 2 | 2017-03-25 - 16:33 | almost 9 years |
| 5.0.4-beta.1 | MIT | 2 | 2017-03-19 - 19:57 | almost 9 years |
| 5.0.4-beta.0 | MIT | 2 | 2017-03-12 - 18:46 | almost 9 years |
| 5.0.3-beta.0 | MIT | 2 | 2017-03-01 - 08:16 | almost 9 years |
| 5.0.2-beta.0 | MIT | 2 | 2017-02-12 - 19:39 | about 9 years |
| 5.0.1 | MIT | 2 | 2017-04-28 - 20:22 | almost 9 years |
| 5.0.1-beta.3 | MIT | 2 | 2017-02-04 - 23:03 | about 9 years |
| 5.0.1-beta.2 | MIT | 2 | 2017-01-23 - 21:04 | about 9 years |
| 5.0.1-beta.1 | MIT | 2 | 2017-01-20 - 23:50 | about 9 years |
| 5.0.1-beta.0 | MIT | 2 | 2016-12-31 - 00:39 | about 9 years |
| 5.0.0 | MIT | 2 | 2017-04-17 - 14:42 | almost 9 years |
| 5.0.0-beta.1 | MIT | 2 | 2016-11-30 - 21:21 | about 9 years |
| 5.0.0-beta.0 | MIT | 2 | 2016-11-08 - 19:29 | over 9 years |
| 4.11.8 | MIT | 2 | 2017-04-28 - 19:23 | almost 9 years |
| 4.11.7 | MIT | 2 | 2017-04-17 - 13:30 | almost 9 years |
| 4.11.6 | MIT | 2 | 2017-04-07 - 22:56 | almost 9 years |
| 4.11.5 | MIT | 2 | 2017-03-11 - 21:44 | almost 9 years |
| 4.11.4 | MIT | 2 | 2017-03-04 - 18:34 | almost 9 years |
| 4.11.3 | MIT | 2 | 2017-02-12 - 19:18 | about 9 years |
| 4.11.2 | MIT | 2 | 2017-01-21 - 21:45 | about 9 years |
| 4.11.1 | MIT | 2 | 2017-01-21 - 00:32 | about 9 years |
| 4.11.0 | MIT | 2 | 2017-01-21 - 00:17 | about 9 years |
| 4.10.4 | MIT | 2 | 2017-01-05 - 20:03 | about 9 years |
| 4.10.3 | MIT | 2 | 2016-12-25 - 00:17 | about 9 years |
