Katalog CVE

CVE-2025-69873

NiskieCVSS 2.9
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.49%

Percentyl 40 - wyżej niż 40% wszystkich znanych CVE

Streszczenie

ajv (Another JSON Schema Validator) przed wersją 8.18.0 jest podatny na Regular Expression Denial of Service (ReDoS) gdy opcja $data jest włączona. Wzorzec pattern akceptuje dane w czasie wykonania przez składnię JSON Pointer ($data reference), które są przekazywane bezpośrednio do konstruktora RegExp() bez walidacji. Atakujący może wstrzyknąć złośliwy wzorzec regex (np. "^(a|a)*$") wraz z odpowiednio spreparowanymi danymi wejściowymi, powodując katastrofalne cofanie się. Ładunek o długości 31 znaków powoduje około 44 sekund blokady CPU, a każdy dodatkowy znak podwaja czas wykonania. Umożliwia to całkowitą odmowę usługi za pomocą pojedynczego żądania HTTP do dowolnego API używającego ajv z $data: true do dynamicznej walidacji schematu. Problem został naprawiony również w wersji 6.14.0.

Ocena ryzyka

Atakujący może spowodować odmowę usługi (DoS) poprzez wysłanie jednego żądania HTTP, blokując CPU na długi czas.

Rekomendacja

Zaktualizuj ajv do wersji 8.18.0 lub nowszej (lub 6.14.0 dla starszych gałęzi).

Oryginalny opis (angielski, źródło NVD)

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.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS