{"id":"DEBIAN-CVE-2025-69873","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 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.","modified":"2026-09-11T18:47:33.181074340Z","published":"2026-02-11T19:15:50.467Z","upstream":["CVE-2025-69873"],"references":[{"type":"ADVISORY","url":"https://security-tracker.debian.org/tracker/CVE-2025-69873"}],"affected":[{"package":{"name":"node-ajv","ecosystem":"Debian:12","purl":"pkg:deb/debian/node-ajv?arch=source&distro=bookworm"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["6.12.6-3","8.11.2~ds+~2.1.1-1","8.12.0~ds+~2.1.1-1","8.12.0~ds+~2.1.1-2","8.12.0~ds+~2.1.1-3","8.12.0~ds+~2.1.1-4","8.12.0~ds+~2.1.1-5","8.17.1~ds+~3.0.1+~3.1.0-1","8.17.1~ds+~3.0.1+~3.1.0-2","8.17.1~ds+~3.0.1+~3.1.0-3","8.17.1~ds+~3.0.1+~3.1.0-4","8.18.0~ds+~cs6.1.1-1","8.18.0~ds+~cs6.1.1-2","8.20.0~ds+~cs6.1.3-1","8.20.0~ds+~cs7.1.2-1","8.20.0~ds+~cs7.1.3-1","8.20.0~ds+~cs7.1.3-2","8.20.0~ds+~cs7.1.3-3","8.20.0~ds+~cs7.1.4-1","8.20.0~ds+~cs7.1.5-1","8.8.2~ds+~2.1.1-1"],"ecosystem_specific":{"urgency":"not yet assigned"},"database_specific":{"source":"https://storage.googleapis.com/osv-test-debian-osv/debian-cve-osv/DEBIAN-CVE-2025-69873.json"}},{"package":{"name":"node-ajv","ecosystem":"Debian:13","purl":"pkg:deb/debian/node-ajv?arch=source&distro=trixie"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["8.12.0~ds+~2.1.1-5","8.17.1~ds+~3.0.1+~3.1.0-1","8.17.1~ds+~3.0.1+~3.1.0-2","8.17.1~ds+~3.0.1+~3.1.0-3","8.17.1~ds+~3.0.1+~3.1.0-4","8.18.0~ds+~cs6.1.1-1","8.18.0~ds+~cs6.1.1-2","8.20.0~ds+~cs6.1.3-1","8.20.0~ds+~cs7.1.2-1","8.20.0~ds+~cs7.1.3-1","8.20.0~ds+~cs7.1.3-2","8.20.0~ds+~cs7.1.3-3","8.20.0~ds+~cs7.1.4-1","8.20.0~ds+~cs7.1.5-1"],"ecosystem_specific":{"urgency":"not yet assigned"},"database_specific":{"source":"https://storage.googleapis.com/osv-test-debian-osv/debian-cve-osv/DEBIAN-CVE-2025-69873.json"}},{"package":{"name":"node-ajv","ecosystem":"Debian:14","purl":"pkg:deb/debian/node-ajv?arch=source&distro=forky"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.18.0~ds+~cs6.1.1-1"}]}],"versions":["8.12.0~ds+~2.1.1-5","8.17.1~ds+~3.0.1+~3.1.0-1","8.17.1~ds+~3.0.1+~3.1.0-2","8.17.1~ds+~3.0.1+~3.1.0-3","8.17.1~ds+~3.0.1+~3.1.0-4"],"ecosystem_specific":{"urgency":"not yet assigned"},"database_specific":{"source":"https://storage.googleapis.com/osv-test-debian-osv/debian-cve-osv/DEBIAN-CVE-2025-69873.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L"}]}